2.4 【基础】布尔值:真与假 ========================== 1. 什么是布尔值 --------------- 但在Python语言中,布尔类型只有两个值 - ``True``\ :表示真值 - ``False``\ :表示假值 请注意,首字母要大写,不能是其它花式变型。 所有的计算结果,判断表达式调用返回值是True或者False的过程都可以称为布尔运算,例如比较运算。 布尔值通常用来判断条件是否成立。 .. code:: python age = 16 if age >= 18: print("你是个成年人") else: print("你还未成年") 在 Python Shell 的模式下,很容易看出表达式返回的是真值还是假值。 .. code:: python >>> True True >>> False False >>> 3 > 2 True >>> 3 > 5 False >>> 3 in [1,2,3] True >>> 3 == 9/3 True 2. 布尔类型的转换 ----------------- Python内置的 ``bool()`` 函数可以用来测试一个表达式的布尔值结果。 .. code:: python >>> bool(1) True >>> bool(0) False >>> bool([]) False >>> bool(()) False >>> bool({}) False >>> bool(-1) True >>> bool('') False >>> bool(None) False >>> bool("False") True >>> bool("True") True >>> bool(0.0) False >>> bool(1.0) True >>> bool(-0.0) False 看完上面的例子,可以总结出 下面这些值经过 bool 转换后是假值: - 0、0.0、-0.0 - None:这个后面会讲到 - 空字符串、空列表、空元组、空字典 而这些会转换成真值 - -1、1或者其他非0数值 - 所有非空字符串,包括 ``"False"`` - 所有非空字典、非空列表、非空集合,非空元组 3. 布尔运算 ----------- 布尔类型可以进行 and、or和 not运算。 and 运算是与运算,只有所有都为True,and运算的结果才是True: .. code:: python >>> True and True True >>> True and False False >>> False and False False >>> 5 > 3 and 3 > 1 True or运算是或运算,只要其中有一个为True,or运算结果就是True: .. code:: python >>> True or True True >>> True or False True >>> False or False False >>> 5 > 3 or 1 > 3 True not运算是非运算,它是单目运算符,把True变成False,False变成True: .. code:: python >>> not True False >>> not False True >>> not 1 > 2 True 再开下脑洞,布尔类型还能做别的运算吗?试试就知道了! .. code:: python >>> 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。往往是我们不知道的细节,有时候给我们带来巨大的困扰和疑惑。更多的运算种类支持,请大家自行测试。 4. 空值:None ------------- 空值不是布尔类型,严格的来说放在这里是不合适的,只不过和布尔关系比较紧密。 空值是Python里一个特殊的值,用None表示(首字母大写)。None不能理解为 0,因为0是整数类型,而None是一个特殊的值。 **None也不是布尔类型,而是NoneType**\ 。 .. code:: python >>> bool(None) False >>> type(None)