我有这个如果,或声明:
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我想知道这是否是最好的写作方式?
发布于 2017-05-03 11:17:35
您可以只使用element in list语法。此外,如果您只想打印if else或false,则不需要使用true语句。您可以直接打印布尔值:
print(5 in [a, b, c, d])
# False如果您想要小写字符串:
print(str(5 in [a, b, c, d]).lower())
# "false"最后,如果您经常需要此测试,则可以将这些值打包到设置中。
a = 1
b = 2
c = 3
d = 4
all_values = set([a, b, c, d])您将投入一些时间来创建集合,但是查询5 in all_values应该会变得更快,特别是如果有许多变量。
发布于 2017-05-03 11:16:26
这在我看来会更好。
if any(x==5 for x in (a, b, c, d)):
...你可以看看文档
类似地,如果要执行多个and检查,则可以使用具有相同语法的all()。
最后,针对您的特殊情况,而且由于您只想做一次成员资格测试,我将使用@Eric发布的答案。我的方法比较通用。
发布于 2017-05-03 11:18:30
你可以用if 5 in [a, b, c,d]:
如果您想检查不同数目的变量的相等性,any()是一个安全的选择。
if any([a == 1, b == 2, c == 3, d == 4]):
https://stackoverflow.com/questions/43758469
复制相似问题