跳转至

布尔类型 bool

布尔值

布尔类型只有两种类型真(True)和假(False),使用 bool() 内置函数可直接获取值的布尔类型。

False 值一共有如下几种:

  • 定义为 False 的对象: None 和 False。

  • 值为 0 的数字类型:

Python
1
2
3
4
0
0.0
Decimal(0)  # 精度表示
Fraction(0, 1)  # 分子为0分母为1的有理数
  • 空的字符串序列和集合:
Python
1
2
3
4
5
6
''
()
[]
{}
set()
range(0)

逻辑运算符

运算符 含义
and 左边和右边同时为True,结果为True
or 左边和右边其中一个为True,结果为True
not 如果操作数为True,结果为False,反之结果为True

短路逻辑

Python 中 and 和 or 遵循短路逻辑:从左到右,只有当第一个操作数的值无法确定逻辑运算的结果时,才对第二个操作数进行求值。Python 不需要对逻辑运算结果全部求出,只需要根据逻辑运算符获取判断结果,没有必要全部求出,这就是短路逻辑。

Python
1
2
3
4
5
3 and 4  # 4 and需要左右都为True才可以判断出结果,所以第一次判断左边然后第二次判断右边就会直接将第二个值4返回
3 or 4  # 3 or只需要一个为True结果就会返回True所以左边3结果为True就直接返回结果3

0 and 3  # 0
0 or 4  # 4

运算符优先级

以下内容为由低到高排列。

优先级 运算符 描述
1 lambda lambda表达式
2 if else 条件表达式
3 or 布尔或
4 and 布尔与
5 not 布尔非
6 in, not, in, is, is not,<, <=, >, >=, !=, == 成员测试,同一性测试,比较
7 | 按位或
8 ^ 按位异或
9 & 按位与
10 <<, >> 移位
11 +, - 加法, 减法
12 *, @, /, //, % 乘法,矩阵乘法,除法,地板除,取余除
13 +x, -x, +x 正号,负号,按位翻转
14 ** 指数
15 await x await表达式
16 x[index], x[index:index], x(arguments.....), x.attribute 下标,切片,函数调用,属性引用
17 (expressions....), [expressions.....], {key: value.....}, {expressions.....} 绑定或元组显示,列表显示,字典显示,集合显示