我是Python新手,我想知道是否有更优雅的方式来表示以下if条件:

a=0
b=0
c=0
d=0
e=0
f=0

if a!=0 and c!=0 and b==0 and d==0 and e==0 and f==0:
    print("Hello World!")

这是一个简单的玩具例子,但实际上我有6个以上的字母,事情变得非常混乱。

最佳答案

你的情况基本上分为两部分:
有些变量都是零
一些变量集都是非零的
然后列出两个清单:

should_be_zero = [b, d, e, f]
should_be_nonzero = [a, c]

然后,您可以将您的情况重新表述为:
all(i == 0 for i in should_be_zero) and all(i != 0 for i in should_be_nonzero)

如注释中所述,由于我们所说的整数是零/非零,因此上面的值相当于
not any(should_be_zero) and all(should_be_nonzero)

关于python - 有条件的话,不会太杂乱,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49086873/

10-16 22:53