转:布尔类型(短路计算)
来源:互联网 发布:linux 登录界面循环 编辑:程序博客网 时间:2024/04/26 21:14
在Python中,布尔类型还可以与其他数据类型做 and、or和not运算,请看下面的代码:
a = Trueprint a and 'a=T' or 'a=F'
计算结果不是布尔类型,而是字符串 'a=T',这是为什么呢?
因为Python把0
、空字符串''
和None
看成 False,其他数值和非空字符串都看成 True,所以:
True and 'a=T' 计算结果是 'a=T'继续计算 'a=T' or 'a=F' 计算结果还是 'a=T'
要解释上述结果,又涉及到 and 和 or 运算的一条重要法则:短路计算。
1. 在计算 a and b
时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。
2. 在计算 a or b
时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。
所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。
0 0
- 转:布尔类型(短路计算)
- Python中布尔类型 短路计算原理
- Python (布尔类型计算)
- C++布尔类型(bool)
- C++布尔类型(bool)
- 布尔类型
- 布尔类型
- 布尔类型
- 布尔类型
- 布尔类型
- C语言中的布尔(bool)类型
- Python数据类型(一):数值布尔类型
- C语言中的布尔(bool)类型
- 布尔类型及界定符(<<<)
- Python基础入门(九)- 布尔类型
- 布尔代数(转)
- Delphi中的布尔类型
- C++中布尔类型
- 【通州爆料】通州台湖一村被征地建设轻轨L2线
- 最短路
- 定义字符串
- raw字符串与多行字符串
- unicode字符串
- 转:布尔类型(短路计算)
- 创建list
- 按照索引访问list
- APP发布的时候输出控制
- 倒序访问list
- 添加新元素
- HDOJ 3183 A Magic Lamp
- Memento
- 【转载】支持向量机通俗导论(理解SVM的三层境界)