python逻辑表达式短路特性
python中常规的逻辑操作符使用方式如下:
>>> True and False
False
>>> True or False
True
>>> not False
True
在对逻辑表达式进行计算,某些情况下由于“短路”特性,只需要计算部分表达式作为最终的结果。
- 计算表达式
<left> and <right>
:- 先计算左边的表达式
<left>
- 如果左边表达式计算结果为假值
v
,则整个表达式结果为v
,因为左边表达式为假,则整个表达式为假,右边的部分不需要再计算 - 否则,整个表达式的值为右边表达式
<right>
的计算结果,因为在左边表达式为真的情况下,整个表达式为假或为真由右边的表达式决定
- 先计算左边的表达式
例子:
>>> 0 and True
0
>>> 1 and -1
-1
>>> 1 and 0
0
- 计算表达式
<left> or <right>
:- 计算左边表达式
<left>
- 如果计算结果为一真值
v
,则整个表达式的结果为v
,因为左边表达式结果为真之后,整个表达式结果为真,右边表达式不需要再计算 - 否则,整个表达式的值由右边表达式
<right>
决定
- 计算左边表达式
例子:
>>> 2 or False
2
>>> 0 or 3
3
>>> False or 0
0
- 计算表达式
not <exp>
:
计算<exp>
,如果值为假整个表达式结果为True
,否则结果为False
。
- 代码在python 3.7.0下运行
- 参考:COMPOSING PROGRAMS 1.5 Control