在while循环中测试整数错误

时间:2016-09-02 15:15:03

标签: python-2.7

我在尝试组合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"

谢谢。

1 个答案:

答案 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"