我在尝试组合while循环和ValueError时遇到了一些问题。 最初我希望我的程序将数字加在一起。当数字总和超过X时,我希望我的程序继续进行其他声明。起初我并没有专注于输入也可能是(例如)字符串。
number = 1
while number < 10:
add = int(raw_input("Enter a number to add: "))
number += add
print number
else:
print "Number is greater than 10"
我尝试将第一个代码与try / except和ValueError结合起来接受整数作为唯一输入。当数字总和超过X时,第二个代码将不会继续使用else语句。有人可以解释为什么这不起作用吗?
number = 1
while number < 10:
while True:
try:
add = int(raw_input("Enter a number: "))
number += add
print number
except ValueError:
print "Please enter a number"
else:
print "Number is greater than 10"
谢谢。
答案 0 :(得分:1)
有一个额外的while True:
循环,导致一个infinte循环。
删除它,您的代码将正常工作。
while(condition)
(条件不是True
)导致错误的另一个例子:你必须确保循环输入一次,有时候是人为地使你的情况变得不正常。我会改为写
number = 1
while True:
try:
add = int(raw_input("Enter a number: "))
number += add
print number
if number>10:
break
except ValueError:
print "Please enter a number"
print "Number is greater than 10"