首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环,比较多个值。

循环,比较多个值。
EN

Stack Overflow用户
提问于 2015-03-16 22:33:01
回答 2查看 6.1K关注 0票数 0

我可以理解如何完美地使用while循环,如果只是将其与一件事进行比较,例如:

代码语言:javascript
复制
x=int(input("Guess my number 1-10"))
while x!=7: 
    print("Wrong!")
    x=int(input("Try again: "))
print("Correct it is 7. ")

但是,如果我想通过while循环比较两个或更多的值(特别是如果我想验证某个值),我会这样做:

代码语言:javascript
复制
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")时才会中断。

我能解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-16 22:35:41

如果您有一个条件为number != '1' or number != '2',这些条件之一将始终为真,因此它将永远不会脱离循环。试一试while number not in ('1', '2', '3')

票数 3
EN

Stack Overflow用户

发布于 2015-03-16 22:37:00

如前所述,您使用的是or而不是and。但是in运算符可能是一个更好的选择:

代码语言:javascript
复制
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]")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29088171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档