【发布时间】:2016-03-05 19:04:35
【问题描述】:
我有一个空列表 n。 n 应该有 10 个取自用户的浮点值。如果用户输入 e,代码应该跳出循环。如果用户输入任何其他文本(不是数字),它应该显示“不是数字”并继续从用户那里获取值。我尝试了以下代码。当我输入 e 作为输入时,代码不会跳出 for 循环并总是转到 else 块并显示“不是数字”。我该如何纠正这个问题?
n = []
for i in range(10):
try:
inp_val = float(input('Enter value (e to exit)'))
n.append(inp_val)
except ValueError:
if inp_val == 'e'
break
else:
print("not a number")
continue
【问题讨论】:
-
您的 if 中有语法错误,如果用户立即输入 e,您将遇到未定义的错误。如果有错误,你也不会得到 10 个数字
-
很少有问题,但我认为您缺少的一个大问题是如果 float(input('Enter value (e to exit)')) 引发错误,则 inp_val 永远不会分配的。我看到下面开始形成一些答案,所以我不会费心添加一个。
-
@user3535492,当您尝试获取包含 10 个数字的列表时,为什么还要提供退出选项?
标签: python exception try-catch