一位朋友(低级技能级别的娱乐python脚本编写者)让我查看一些代码.我注意到他有7个单独的陈述,基本上说.
if ( a and b and c):
do something
Run Code Online (Sandbox Code Playgroud)
陈述a,b,c都测试了它们的相等或缺乏设定值.当我看到它时,我发现由于测试的性质,我可以将整个逻辑块重写为2个分支,从不超过3个深度并且很少超过第一个级别(进行最罕见的测试)第一).
if a:
if b:
if c:
else:
if c:
else:
if b:
if c:
else:
if c:
Run Code Online (Sandbox Code Playgroud)
对我来说,从逻辑上讲,如果你做的更少,更简单的测试更快失败并继续前进,它似乎应该更快.我真正的问题是
1)当我说if if时,如果if为真,那么else会被完全忽略吗?
2)理论上会
如果(a和b和c)
花三倍于单独的if语句会花多少时间?
在if语句中使用和使用多个if语句之间是否存在效率差异?换句话说,是类似的东西
if expr1 == expr2 and expr3==expr4:
dostuff()
Run Code Online (Sandbox Code Playgroud)
从效率的角度来看,那么:
if expr1 == expr2:
if expr3 == expr4:
dostuff()
Run Code Online (Sandbox Code Playgroud)
我的基本测试并没有发现差异,但有更多知识(或至少更彻底的测试)的人是否有明确的答案?