布尔值也叫真值,在Python开发(http://www.maiziedu.com/course/python-px/)中所有的值都被解释为真值,标准的真值为true和false。那么布尔变量在Python开发中有何作用呢?下面一起看看吧。
下面的值在作为布尔表达式的时候,会被解释器看做假(False):
False None 0 "" () [] {}
换句话说,也就是标准值False和None、所有类型的数字0(包括浮点型、长整型和其他类型)、空序列(比如空字符串、元组和列表)以及空的字典都为假。其他的一切(至少当我们讨论內建类型是是这样——第九章內会讨论构建自己的可以被解释为真或假的对象)都被解释为真,包括特殊值True(Python经验丰富的Laura Creighton解释说这个区别类似于“有些东西”和“没有东西”的区别,而不是真和假的区别)。
明白了吗?也就是说Python中的所有值都能被解释为真值,初次接触的时候可能会有些搞不明白,但是这点的确非常有用。“标准的”布尔值为True和False。在一些语言中(例如C和Python2.3以前的版本),标准的布尔值为0(表示假)和1(表示真)。事实上,True和False只不过是1和0的一种“华丽”的说法而已——看起来不同,但作用相同。
>>> True
True>>> False
False>>> True == 1
True>>> False == 0
True>>> True + False1
>>> True + False + 19
20
那么,如果某个逻辑表达式返回1或0(在老版本Python中),那么它实际的意思是返回True或False。
布尔值True和False属于布尔类型,bool函数可以用来(和list、str以及tuple一样)转换其他值。
>>> bool("I think, therefore I am")
True>>> bool(19)
True>>> bool("")
False>>> bool(0)
False
因为所有值都可以用作布尔值,所以几乎不需要对它们进行显示转换(可以说Python会自动转换这些值)。
注:尽管[]和""都是假肢(也就是说bool([])==bool("")==False),它们本身却并不相等(也就是说[]!="")。对于其他不同类型的假值对象也是如此(例如()!=False)。