python错题记录:布尔运算与逻辑值检测

一 前言

环境:python 3.10 win10

二 布尔运算与逻辑值检测

1 案例

案例1
image

如上,a and b,b根本未定义,这不是一个很明显的错误吗?,可这里根本没有报错且还得出了结果。
在布尔运算时,有些时候代码只会运算前面的一部分,剩下的部分根本不会运算。以前在练习算法代码时,就利用这个规则来减少代码的工作量

案例2
image

如上,之前好长一段时间,上面的布尔运算总是让我感到困惑

布尔运算

image

从上面运算规则可以看出
在特定的情况下,布尔运算可以只对前面的部分数据进行计算,同时不理会后面的数据
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

image

posted @ 2024-07-27 23:50  工作手记  阅读(2)  评论(0编辑  收藏  举报