首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python: IF语句和多个OR

Python: IF语句和多个OR
EN

Stack Overflow用户
提问于 2015-09-13 05:53:21
回答 1查看 793关注 0票数 0

作为Python的新手,我脑海中有这样的伪代码:

代码语言:javascript
复制
if vars 1-4 are passed and all of them are 1:
    if it’s var1 or 2:
        print("a")
    if it’s var3
        print("b")
    if it’s var4
        print("c")

if vars 1-4 are passed and all of them are either 2, 3 or 4:
    if it’s var1 or 2:
        print("d")
    if it’s var3:
        print("e") and so on

if vars 1-4 are passed and all of them are either 0 or 5-10:
    if it’s var1 or 2:
        print("f") and so forth

我试过几种方法,但还没有办法。例如:

代码语言:javascript
复制
if arg in [var1, var2, var3, var4] and [var1, var2, var3, var4] == 1:
    if var in [var1, var2]:
        print("a")
    if var == var3:
        print("b")
    if var == var4:
        print("c")

if arg in [var1, var2, var3, var4] and 2 <= [var1, var2, var3, var4] <= 4:
    if var in [var1, var2]:
        print("d") #and so on

if arg in [var1, var2, var3, var4] and 5 <= [var1, var2, var3, var4] <= 10: #+ put the 0
    if var in [var1, var2]:
        print("f") #and so forth

使用if test in [var1, var2, var3, var4]的部分可以很好地使用所有4个变量,但对于检查它们是否等于1则不行。而且,第二部分,带范围的第二部分(范围+ 0)更糟糕。我可能会把所有这些分开,然后在每个人前面用一个OR单独测试,但从长远来看,如果有更多的变量,那是不可能的。当然,一定还有更多的毕达通方式吗?

用于澄清用法:代码是在一个函数中使用的,该函数接受一个参数(每次4个变量中的一个),这取决于应该根据哪些(var1-4)不同的输出。变量由用户输入,存储在函数之外,可以在0-10的范围内,彼此独立。

EN

回答 1

Stack Overflow用户

发布于 2015-09-13 06:00:13

您正在将一个整数与一个总是导致False的列表进行比较。

我猜您正在尝试检查列表中的所有值是否等于1。您可以这样做:

代码语言:javascript
复制
all(item == 1 for item in items)

你也可以这样做:

代码语言:javascript
复制
if var1==var2==var3==var4==1:
print "ok"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32546776

复制
相关文章

相似问题

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