我必须制作一个函数,向用户请求非零浮点值;当用户输入0时,将打印输入的数字之和。当用户在一行中输入两个无效输入时,函数终止。
我有以下代码:
def inValues():
counter = 0
s = 0
while True:
if counter <= 2:
try:
digit = input('Please enter a number: ')
counter += 1
floatDig = float(digit)
break
else:
break
except:
print('Error. Please re-enter the value.')
if floatDig == 0:
s += sum(floatDig)
return s
但当运行时,它只要求一个输入,然后停止。我很确定代码被打乱了,所以我们非常感谢您的帮助。
注意事项:
while
循环可能有一个条件,所以我用它来计算错误break
退出while
循环,所以我删除了它(我们现在使用它来监视错误计数)- 我立即检查用户是否想退出
- 错误计数器只在出现错误时增加
代码:
def inValues():
errorcounter = 0
s = 0
while errorcounter < 2: # errorcounter = [0, 1] ...
digit = input('Please enter a number: ')
if digit == '0':
# return sum of numbers
return s
try:
# try and summarize input
s += float(digit)
except:
print('Error. Please re-enter the value.')
errorcounter += 1
print("Too many errors.")
# possibly return indicative value (None?)