请问如果python如何运行多个术语?
例如:
a = 0
b = 0
c = 0
if a == 0 and b == 1 and c == 0:
# test fails
我猜python内部会将测试分成3个if。 但是,有两种可能的情况:
python如何在内部运行此测试?
谢谢你,问候, 雨果
答案 0 :(得分:11)
如果第一个参数是True
,则评估第二个参数。同样,对于后续的论点。
答案 1 :(得分:5)
这与条件子句无关,而是与布尔运算符and
和or
有关。他们是short-circuit operators。如果第一个值为False,则立即使用False。否则,将评估第二个值。
这是一个很好的例子:
>>> def a():
... print 'a is running!'
... return True
...
>>> def b():
... print 'b is running!'
... return False
...
>>> def c():
... print 'c is running!'
... return True
...
>>> if a() and b() and c():
... print 'hello!'
...
a is running!
b is running!
由于b
返回False
,c
最终无法运行,因为没有必要。
答案 2 :(得分:3)
第二个。 and
/ or
是短路运算符 - 如果不需要,则不计算第二个参数。请参阅文档boolean-operations-and-or-not。
答案 3 :(得分:3)
Python对if
使用“懒惰评估”:
请参阅docs
“表达式x和y首先计算x;如果x为false,则其值为 回;否则,评估y并得到结果值 返回。“