如果你能告诉python如何运行几个术语?
例如:
a = 0
b = 0
c = 0
if a == 0 and b == 1 and c == 0:
# test fails
我猜python在内部将测试分成3个if。但是,有两种可能的情况:
- python如果一个一个运行所有3个,其中一个是错误的,测试失败
- 或者python一个一个运行,如果第一次失败,测试失败,其他如果没有运行
python如何在内部运行这个测试?
谢谢你和问候,雨果
如果你能告诉python如何运行几个术语?
例如:
a = 0
b = 0
c = 0
if a == 0 and b == 1 and c == 0:
# test fails
我猜python在内部将测试分成3个if。但是,有两种可能的情况:
python如何在内部运行这个测试?
谢谢你和问候,雨果
and
是短路算子。
如果第一个参数是 ,则计算第二个参数True
。同样,对于后续参数。
这与条件子句无关,但与布尔运算符and
和or
. 他们是短路操作员。如果第一个值为 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
不需要而最终运行。
第二。 and
/or
是短路运算符 - 如果不需要,则不评估第二个参数。请参阅文档boolean-operations-and-or-not。
Python 使用“惰性求值” if
:参见文档
“表达式 x 和 y 首先计算 x;如果 x 为假,则返回其值;否则,计算 y 并返回结果值。”