Python教程-布尔类型
 
            
            布尔类型
对于错、0和1、正与反,都是传统意义上的布尔类型。
在Python语言中,布尔类型只有两个值,即True和False。这两个值用于表示真和假的概念。请注意,它们的首字母要大写,并且不能进行其他变形。
布尔类型在Python中通常用于条件判断和逻辑运算。比较运算、逻辑运算和其他返回布尔值的操作都可以归类为布尔运算。布尔值的结果常用于判断条件是否成立。
age = 16
if age >= 18:
    print("你是个成年人")
else:
    print("你还未成年")Python内置的bool()函数可以用来测试一个表达式的布尔值结果。
下面一些例子的结果,可能让你感到惊讶,但事实就是如此,请坦然接受。
>>> True
True
>>> False
False
>>> 3 > 2
True
>>> 3 > 5
False
>>> 3 in [1,2,3]
True
>>> 3 == 9/3
True
>>> 3 is "3"
False为什么3 is "3"是错误的呢?因为一个是整数一个是字符串,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
Trueor运算是或运算,只要其中有一个为True,or运算结果就是True:
>>> True or True
True
>>> True or False
True
>>> False or False
False
>>> 5 > 3 or 1 > 3
Truenot运算是非运算,它是单目运算符,把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确实可以进行比较运算和四则运算,Python将True看作1,将False看作0。这些细节有时候可能会让人感到困惑,但它们确实存在并可以被利用。你可以自行测试更多的运算种类。
空值:None
空值不是布尔类型,严格的来说放在这里是不合适的,只不过和布尔关系比较紧密。
另外,空值在Python中用None表示(首字母大写)。None不是布尔类型,也不是0,它是一个特殊的值。None的类型是NoneType,而不是布尔类型。
>>> bool(None)
False
>>> type(None)
<class 'NoneType'>我们平时最容易犯的错误就是获得了一个None值,却对它进行各种方法调用,例如:
list1 = ["a", "b", None]
for char in list1:
    print(char.join("A"))
######################################
Traceback (most recent call last):
  File "F:/Python/pycharm/201705/test.py", line 7, in <module>
    print(char.join("A"))
AttributeError: 'NoneType' object has no attribute 'join' 
          
          
         