布尔类型

对于错、0和1、正与反,都是传统意义上的布尔类型。

但在Python语言中,布尔类型只有两个值,True与False。请注意,是英文单词的对与错,并且首字母要大写,不能其它花式变型。

布尔值通常用来判断条件是否成立。 例如:

a = 1
if a > 3:
print("a是一个大于3的数字")
else:
print("a不是一个大于3的数字")

Python内置的bool()函数可以用来测试一个表达式的布尔值结果。

Python数据类型-3 布尔类型-LMLPHP

这里需要注意的是,3 is "3" 为什么是False呢?一个是整数一个是字符串。is是运算符比较的是对象,当然是错误的。

>>> bool(1)
True
>>> bool(0)
False
>>> bool([])
False
>>> bool(())
False
>>> bool({})
False
>>> bool(-1)
True
>>> bool('')
False
>>> bool("False")
True
>>> bool("True")
True
>>> bool(0.0)
False
>>> bool(1.0)
True
>>> bool(-0.0)
False 0、0.0、-0.0、空字符串、空列表、空元组、空字典,这些都被判定为False。而-1、"False"也被判断为True。

布尔类型可以进行and、or和not运算

and运算是与运算,只有所有都为True,and运算的结果才是True:

>>> True and True
True
>>> True and False
False
>>> False and False
False
>>> 5 > 3 and 3 > 1
True

or运算是或运算,只要其中有一个为True,or运算结果就是True:

>>> True or True
True
>>> True or False
True
>>> False or False
False
>>> 5 > 3 or 1 > 3
True

not运算是非运算,它是单目运算符,把True变成False,False变成True:

>>> not True
False
>>> not False
True
>>> not 1 > 2
True

布尔类型还能做别的运算吗?

>>> True > False
True
>>> True < False
False
>>> True >=False
True
>>> True -1
0
>>> True + 1
2
>>> True *3
3
>>> False -1
-1

并且在做四则运算的时候,明显把True看做1,False看做0。

空值是Python里一个特殊的值,用None表示(首字母大写)。None不能理解为0,因为0是整数类型,而None是一个特殊的值。None也不是布尔类型,而是NoneType。

>>> bool(None)
False
>>> type(None)
<class 'NoneType'>
05-18 19:19