在我的IF声明中没有工作

时间:2017-01-22 18:53:29

标签: python break

我不确定为什么我的休息声明不起作用。

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!"

1 个答案:

答案 0 :(得分:0)

您的代码存在的问题是,您首先使用raw_input查询输入,但立即将其转换为int(..)

有两种选择:要么成功,要么通过追加来完成处理,但在这种情况下,number永远不能是'q',或者如果是qint(..)失败,抛出错误,您将执行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所说。