一 前言
环境:python 3.10 win10
二 布尔运算与逻辑值检测
1 案例
案例1
如上,在布尔运算时,有些时候代码只会运算前面的一部分,剩下的部分根本不会运算。以前在练习算法代码时,就利用这个规则来减少代码的工作量
案例2
如上,之前好长一段时间,上面的布尔运算总是让我感到困惑
布尔运算
从上面运算规则可以看出
在特定的情况下,布尔运算可以只对前面的部分数据进行计算,同时不理会后面的数据
or与and这两个运算,运算结果是其中的数据之一。 而not运算不管数据是什么,它的结果就是True 或者 False
逻辑值检测
在python中,任何对象都可以进行逻辑值的检测,一个对象会被视为具有真值,除非其所属的类定义了在对象上调用时返回 False 的 bool() 方法或者返回零的 len() 方法。下面是常见的逻辑值为False的内置对象
- 被定义为假值的常量: None 和 False
- 任何数值类型的零: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
- 空的序列和多项集: '', (), [], {}, set(), range(0)
在python中,常用0或者False来表示布尔类型(Bool)为假值得情况,用1或者True来表示布尔类型为真值的情况
上面的案例2中,数字2的逻辑值为真,所以 not 2 的结果为False,如果是 not 0 结果就是True
布尔类型(bool)
可使用内置函数得到一个对象的逻辑值(True或者False)
bool是int的子类,可将False True 近似地看作0 1