我正在尝试在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>
答案 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中。另请注意,这会返回一个字符串,而不是一个整数,这就是你的布尔支票意外失败的原因