如果只是将它与一件事进行比较,我可以理解如何完美地使用while循环,例如:
x=int(input("Guess my number 1-10"))
while x!=7:
print("Wrong!")
x=int(input("Try again: "))
print("Correct it is 7. ")
但是,如果我想通过while循环比较两个或更多值(特别是如果我想验证某些东西),我会这样做:
number=input("Would you like to eat 1. cake 2. chocolate 3. sweets: ")
while number!= "1" or number != "2" or number != "3":
number=input("Please input a choice [1,2,3]")
#Some code...
当number
等于1,2或3时,程序应继续...但它不会,无论我输入什么值,程序都会陷入无限循环线2-3。我也尝试了while number != "1" or "2" or "3"
,同样也发生了无限循环。当我尝试用or
替换所有and
时,while循环只会在number
等于比较的第一个值(在这种情况下为"1"
)时中断。
有什么方法可以解决这个问题吗?
答案 0 :(得分:3)
如果条件为number != '1' or number != '2'
,其中一个条件将始终为真,因此它永远不会脱离循环。请改为while number not in ('1', '2', '3')
。
答案 1 :(得分:1)
如前所述,您使用or
代替and
。但in
运算符可能是更好的选择:
number=input("Would you like to eat 1. cake 2. chocolate 3. sweets: ")
while number not in ("1", "2","3"):
number=input("Please input a choice [1,2,3]")