我有这个IF,OR声明:
a = 1
b = 2
c = 3
d = 4
if a == 5 or b == 5 or c == 5 or d == 5:
# do something
else:
# do something different
我想知道这是否是最好的写作方式?
答案 0 :(得分:6)
您可以使用element in list
语法。此外,如果您只想打印if else
或true
,则无需使用false
语句。你可以直接打印布尔值:
print(5 in [a, b, c, d])
# False
如果你想要一个小写字符串:
print(str(5 in [a, b, c, d]).lower())
# "false"
最后,如果您经常需要此测试,则可以将值打包到set:
a = 1
b = 2
c = 3
d = 4
all_values = set([a, b, c, d])
您将投入一些时间来创建集合,但查询5 in all_values
应该变得更快,特别是如果有很多变量。
答案 1 :(得分:4)
这在我眼里会更好。
if any(x==5 for x in (a, b, c, d)):
...
您可以查看documentation
同样,如果您想要执行多项and
检查,则可以使用all()
语法相同。
最后,对于你的特殊情况,因为你唯一要做的就是会员资格考试,我会选择@Eric发布的答案。我的方法更通用。
答案 2 :(得分:1)
您可以使用if 5 in [a, b, c,d]:
如果你想检查具有不同数字any()
的变量的相等性是一个安全的赌注
if any([a == 1, b == 2, c == 3, d == 4]):
答案 3 :(得分:1)
也许仅使用in
:
if 5 in (a,b,c,d):
print('true')
else:
print('false')
或只是
print(5 in (a,b,c,d))