布尔类型
对于错、0和1、正与反,都是传统意义上的布尔类型。
但在Python语言中,布尔类型只有两个值,True与False。请注意,是英文单词的对与错,并且首字母要大写,不能其它花式变型。
布尔值通常用来判断条件是否成立。 例如:
a = 1
if a > 3:
print(“a是一个大于3的数字”)
else:
print(“a不是一个大于3的数字”)
Python内置的bool()函数可以用来测试一个表达式的布尔值结果。
image.png
这里需要注意的是,3 is “3” 为什么是False呢?一个是整数一个是字符串。is是运算符比较的是对象,当然是错误的。
bool(1)
Truebool(0)
Falsebool([])
Falsebool(())
Falsebool({})
Falsebool(-1)
Truebool(’’)
Falsebool(“False”)
Truebool(“True”)
Truebool(0.0)
Falsebool(1.0)
Truebool(-0.0)
False
0、0.0、-0.0、空字符串、空列表、空元组、空字典,这些都被判定为False。而-1、"False"也被判断为True。
布尔类型可以进行and、or和not运算
and运算是与运算,只有所有都为True,and运算的结果才是True:
True and True
TrueTrue and False
FalseFalse and False
False5 > 3 and 3 > 1
True
or运算是或运算,只要其中有一个为True,or运算结果就是True:
True or True
TrueTrue or False
TrueFalse or False
False5 > 3 or 1 > 3
True
not运算是非运算,它是单目运算符,把True变成False,False变成True:
not True
Falsenot False
Truenot 1 > 2
True
布尔类型还能做别的运算吗?
True > False
TrueTrue < False
FalseTrue >=False
TrueTrue -1
0True + 1
2True *3
3False -1
-1
并且在做四则运算的时候,明显把True看做1,False看做0。
空值
空值不是布尔类型,严格的来说放在这里是不合适的,只不过和布尔关系比较紧密。
空值是Python里一个特殊的值,用None表示(首字母大写)。None不能理解为0,因为0是整数类型,而None是一个特殊的值。None也不是布尔类型,而是NoneType。
bool(None)
Falsetype(None)
<class ‘NoneType’>