Python 数据类型:布尔类型和None


bool(也叫逻辑值)有True和False,用于表示真或假。True和False是预先定义的关键字,在内部,True和False是bool的实例,实际上仅仅是内置的整数类型int的子类。True和False的行为跟整数1和0是相同的。

有些值是unknown的,用None来表示。

一,布尔类型

bool数据类型的值是:True和False,显示的是True和False,其行为跟整数1和0是相同的。

布尔类型常用于条件表达式中,用于控制循环结构和分支结构。

对于bool值可以进行逻辑运算(and,or,not)。

1,Python的真值规则

  • 数字0、0.0、空字符串、空值None、空对象(空的元组,空的集合,空的列表)都是False;
  • 其他值都是True

2,布尔and和or运算符返回对象,而不是值True或False

and 和 or运算符总会返回对象,不是运算符左侧的对象,就是右侧的对象。

对于or运算符而言,Python会由左至右求操作对象,然后返回第一个为真的操作对象。or运算符是短路计算,Python会在其找到第一个True的操作数就停止。如果没有遇到True的对象,那么返回最后一个假的对象。

>>> 1 or []
1
>>> [] or 1
1
>>> [] or {}
{}

对于and运算符而言,Python会由左至右求操作对象,然后返回第一个为假的操作对象。and运算符是短路计算,Python会在其找到第一个False的操作数就停止。如果没有遇到False的对象,那么返回最后一个True的对象。

>>> 1 and 2 and 3
3
>>> [] and {}
[]
>>> 1 and []
[]

二,空值

空值是Python里一个特殊的值,用None表示,意思是未知的(unknown)。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。在真值测试中,表现为False。

参考文档: