我可以理解如何完美地使用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时,When循环只有在number等于第一个比较值(在本例中是"1")时才会中断。
我能解决这个问题吗?
发布于 2015-03-16 22:35:41
如果您有一个条件为number != '1' or number != '2',这些条件之一将始终为真,因此它将永远不会脱离循环。试一试while number not in ('1', '2', '3')。
发布于 2015-03-16 22:37:00
如前所述,您使用的是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]")https://stackoverflow.com/questions/29088171
复制相似问题