4

这里是 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...."
4

2 回答 2

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
于 2013-02-26T21:23:49.397 回答
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...."
于 2013-02-26T21:16:05.123 回答