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。
参考文档: