我不确定为什么我的休息声明不起作用。
lst = []
while True:
try:
number = int(raw_input("Enter a number: "))
lst.append(number)
print lst
if number == 'q':
break
except:
print "Please enter a number!"
答案 0 :(得分:0)
您的代码存在的问题是,您首先使用raw_input
查询输入,但立即将其转换为int(..)
。
有两种选择:要么成功,要么通过追加来完成处理,但在这种情况下,number
永远不能是'q'
,或者如果是q
, int(..)
失败,抛出错误,您将执行except:
分支。
您可以先修改输入(例如在number
中),检查是否为'q'
,如果不是,请对其进行处理,例如:
lst = []
while True:
try:
number = raw_input("Enter a number: ") # no int(..)
if number == 'q':
break
else:
lst.append(int(number))
print lst
except:
print "Please enter a number!"
您可以将else:
(只有else:
而不是else:
的正文)退出程序,如@schwobaseggi所说。