你真的了解Python中的布尔类型吗?
布尔类型(bool)
在介绍 True 和 False 之前先介绍下Python中的布尔类型。
布尔类型本质上是数值类型。它只包含两个值>> True 和 False, 也就是整数0和1的定制机版,只是打印到控制台时有所不同。
以上是大多数人都知道的。今天我们深入地说说这个名为 bool 的显式布尔数据类型,带有True 和 False作为可用且预值的内置名称。
在内部,名称True和False是bool的实例,然而bool实际上是内置整数类型int 的子类而已。
所以布尔表达式在交互命令行模式的输出就作为关键字 True和 False显示的,而并非1和0.布尔型让真值在代码中更明显。
eg:`# 无限循环
while True: # 而不是while 1:
True 和 False
首先总结下python中True 和 False 的范围:
python中整数0代表假,整数1代表真。
python也把其他任何空数据结构视为假,任何非空数据结构视为真。
真和假是每个对象固有属性,每个对象非真即假。
1.整数类型:数字如果等于零则为假,反之为真
>>> bool(1); bool(-10); bool(0)
True
True
False
ps:True 预先赋值1,False预先赋值0
>>> True + 4; False + 4
5
4
但是True并不是1,False并不是0,只是值相同
>>> True == 1; False == 0
True
True
>>> True is 1; False is 0
False
False
2.其他对象,如果为空则为假,反之为真
>>> bool('')
False
>>> bool(['a','b'])
True
>>> bool({})
False
>>> bool(())
False
在实际运用中空数据结构当作假是很实用的。
eg:
if string != '':
#string 是一个字符串,这样一个if语句可以判断字符串是否为空
None对象
python中除了True 和 False以外,还有一个特殊对象,None.
None是一种特殊的占位符对象,并且被认为是假
>>> bool(None)
False
它是python中的一种特殊数值类型的唯一值,一般起到一个空占位符的作用(类似于C语言中的NULL指针)
eg:如果分配一个含100项的列表,可以在100个偏移量的每一个上赋值None对象。
>>> [None]*100
[None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None]
这并不是限制了列表大小,之后仍然可以增长或缩短,只是预设了一个初始大小,从而允许之后的索引赋值。(当不知道列表内容时用None)
None不代表未定义
None是一个真正的对象,并且有真实的内存,例如函数中return 默认返回值是None,而不是不返回值。