【发布时间】:2019-05-22 23:59:12
【问题描述】:
print('Input a list of numbers to do statistics on them. Type stop to end the list.')
while True:
number_list = []
stop_input = False
while stop_input == False:
user_input = input('-> ')
if float(user_input):
number_list.append(user_input)
elif user_input == 'stop':
stop_input = True
print('Sum:', sum(number_list))
错误如下:
如果浮动(用户输入):
ValueError: 无法将字符串转换为浮点数:'stop'(第 10 行)。
我正在输入 as
1.0
2.0
3.0
停止
【问题讨论】:
-
有几件事:您不需要与布尔值进行比较,这就是重点。只需使用
if not stop_input而不是if stop_input == False。此外,您的错误来自您的输入:如果您尝试输入字母,则将您的输入转换为浮点数(十进制数)的函数将失败。所以你要么捕获异常,要么改变你的逻辑。 -
float("Not a float literal")将引发异常,而不是返回False。你必须抓住它。
标签: python python-3.x