如何确保用户在python中输入一组给定的数字

时间:2015-12-23 15:19:37

标签: python range

我正在尝试在python中创建一个程序,用户只能输入1,2或3.我尝试过这种方法,但它不起作用。

x = input("Enter your Choice: ")    
while (x!=1 or x!=2 or x!=3):
    x = input("Enter your Choice: ")

使用此方法,即使输入1,2或3或任何其他数字,它也会不断询问输入。任何人都可以告诉我为什么这不起作用,并建议输入这三个数字的正确方法。< / p>

2 个答案:

答案 0 :(得分:1)

这就是我们所说的逻辑错误

这一行应该是这样的:

while (x!=1 and x!=2 and x!=3):

即,将更改为

要处理任何输入并在错误不是1,2或3时发出错误,请执行以下操作:

x = raw_input("Enter your Choice: ")    
while (x!='1' and x!='2' and x!='3'):
    x = raw_input("Enter your Choice: ")

答案 1 :(得分:0)

尝试:

def userchoicevalidator(): 
    x = input("Please Enter Your Choice: ") 
    while x not in list('123'): 
        x = input("Please Enter Your Choice: ")

raw_input没有为你工作的原因是因为它在python 3中已被弃用。input在python 3中。另请注意,这会返回一个字符串,而不是一个整数,这就是你的布尔支票意外失败的原因