我是Python的新手,我想知道是否有更优雅的方式来表达以下条件:
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个字母,而且事情变得非常混乱。
答案 0 :(得分:8)
您的情况基本上分为两部分:
然后制作两个列表:
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)
答案 1 :(得分:2)
您可以使用all
和any
。
if all((a, c)) and not any((b, d, e, f)):
print("Hello World!")
如果列出一个或多个数字,all(...)
会返回True
,如果它们都非零且not any(...)
返回True
则它们都为零。
答案 2 :(得分:1)
你可以利用0是假的,1是真实的事实:
if a and c and not b and not d and not e and not f:
print("Hello World!")