限制输入仅限整数(文本崩溃PYTHON程序)

时间:2013-02-26 21:13:54

标签: python

这里是Python新手,试图将测验输入限制为仅限1,2或3 如果键入文本,程序崩溃(因为文本输入无法识别)
这是对我所拥有的改编: 欢迎任何帮助。

choice = input("Enter Choice 1,2 or 3:")
if choice == 1:
    print "Your Choice is 1"
elif choice == 2:
    print "Your Choice is 2"  
elif choice == 3:
    print "Your Choice is 3"
elif choice > 3 or choice < 1:
    print "Invalid Option, you needed to type a 1, 2 or 3...."

2 个答案:

答案 0 :(得分:8)

改为使用raw_input(),然后转换为int(如果转换失败,则抓住ValueError)。您甚至可以包含范围测试,如果给定的选择超出允许值范围,则显式提升ValueError()

try:
    choice = int(raw_input("Enter choice 1, 2 or 3:"))
    if not (1 <= choice <= 3):
        raise ValueError()
except ValueError:
    print "Invalid Option, you needed to type a 1, 2 or 3...."
else:
    print "Your choice is", choice

答案 1 :(得分:2)

试试这个,假设choice是一个字符串,因为问题中描述的问题似乎就是这种情况:

if int(choice) in (1, 2, 3):
    print "Your Choice is " + choice
else:
    print "Invalid Option, you needed to type a 1, 2 or 3...."