偶尔,我在想检查的地方遇到这个问题:
a = 'my string'
if 'string1' in a or 'string2' in a or 'string3' in a ... or 'stringN' in a:
[[do something]]
else:
[[something else]]
假设我知道 'string1' in a 的计算结果为 True 的可能性为 90%。在 'string1' in a 为 True 的情况下,Python 是否仍会评估 'string2' in a?或者在技术上更有效地编写:
if 'string1' in a:
[[do something]]
elif 'string2' in a:
[[do something]]
elif 'string3' in a:
[[do something]]
...
elif 'stringN' in a:
[[do something]]
else:
[[something else]]
请您参考如下方法:
or and and both use short-circuiting ;他们只会评估确定结果所需的条件。因此,如果 'string1' in a 返回 True,则永远不会触及 'string2' in a。
