我不确定代码有什么问题,因为我才刚刚开始使用 python,但是当输入错误值时,它会输出“ValueError: 无法将字符串转换为 float :'(Error value)'” ”。但是我希望它输出“无效字符。请重试。”然后为了让循环从头开始继续,我无法弄清楚我可以更改什么,因此对所需内容的解释也很好。
ListOfNumbers = []
while True:
Number = float(input("Enter a number >>"))
if Number == 0:
print ("End.")
break
try:
ListOfNumbers.append(int(Number))
Average = float(sum(ListOfNumbers))/len(ListOfNumbers)
except ValueError:
print ("Invalid Character/s. Please Try Again.")
continue
print ("The total value is", sum(ListOfNumbers))
print ("The average value is", Average)
print ("The highest value is", max(ListOfNumbers))
print ("The lowest value is", min(ListOfNumbers))
ListOfNumbers.sort()
print ("List of numbers", ListOfNumbers)
最佳答案
ValueError
是接受输入的行抛出的异常。移动 try
block 以捕获异常。
while True:
try:
Number = float(input("Enter a number >>"))
if Number == 0:
print ("End.")
break
ListOfNumbers.append(int(Number))
Average = float(sum(ListOfNumbers))/len(ListOfNumbers)
except ValueError:
print ("Invalid Character/s. Please Try Again.")
continue
关于Python while true循环未达到 "except ValueError",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46454254/