在Python中检查多个条件

4
我有以下代码:

我有以下代码:

a = 1
b = 2
c = 3
d = 4
e = 5
if ((a == 1 and
     b == 2 and
     c == 4) or
     (d == 4  and e == 5)):
    print "Yeah, Working"
else:
    print "ooops"

能否以最简单、最好的方式实现相同的代码?

1
我喜欢将“部分”保存到它们自己的变量中。例如:is_valid = (a == 1 and b == 2 and c == 4)has_some_atttribute = (d == 4 and e == 5)if is_valid or has_some_attribute: ... - 0x5453
1
还有,这是Python!在if后面删除那些多余的括号,即将if(...)改为if ... - Keyur Potdar
2个回答

10
如果你想使条件语句更加清晰或者更好看,你可以像这样做:
a = 1
b = 2
c = 3
d = 4
e = 5
if (a, b, c) == (1, 2, 4) or (d, e) == (4, 5):
    print "Yeah, Working"
else:
    print "ooops"

9

这是一个非常个人化的答案,但我喜欢在if语句之前初始化一些布尔变量。我发现这样更易读(因为你可以给变量起一个有意义的名字),而且我相信编译器可以轻松地进行优化。

cond1 = a == 1 and b == 2 and c == 4
cond2 = d == 4 and e == 5
if cond1 or cond2:
    print("Yeah, working")
else:
    print("ooops")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接