URLhttps://learnscript.net/zh/python/data-types/boolean-types/
    复制链接转到说明  示例

    Python 布尔类型 bool 使用说明

    我被代码海扁署名-非商业-禁演绎
    阅读 2:46·字数 832·发布 

    Python 布尔类型

    Python 的布尔类型bool继承自数字类型int,主要用于表示真(True)和假(False)两种状态,因此,从用途上看,布尔类型和数字类型有很大区别。

    True,False 等价于 1,0

    既然boolint类型存在继承关系,那么True等价1False等价0的设计就是可以理解的。

    True == 1
    True
    0 == False
    True
    1 + True
    2

    不建议直接使用布尔值参与算术运算

    通过上面的示例,我们看到表达式1+True可以得到预期结果2,但官方建议使用int构造器显式的转换布尔值,原表达式最好书写为1+int(True)。是的,这是一种更为稳妥的方法,以防止意外的发生。

    数字类型

    要想了解 Python 数字类型,你可以查看Python 数字类型 int,float,complex 使用说明一节。

    创建 Python 布尔值

    除了直接书写字面量TrueFalse,你还可以使用bool类型的构造器,创建一个布尔值。

    bool([x], /)

    x 参数

    x参数表示用于创建布尔值的对象,如果未指定则布尔值为False

    bool()
    False
    bool(1.23)
    True
    bool('')
    False

    将 Python 对象转换为布尔值

    一个对象可以被隐式的转换为布尔值,这会发生在使用bool构造器,或对象作为ifwhile语句的判断依据时。

    隐式转换工作由对象的__bool__方法完成,该方法返回TrueFalse,对应了隐式转换的结果。如果__bool__方法不存在,那么将根据__len__方法的返回值决定转换结果,__len__返回0对应False,返回其他值对应True。如果__len__方法也不存在,那么对象将转换为True

    在 Python 中,None,等价于0的数字,长度为0的序列或集合对象,都将被视为False。比如,0+0j(){}

    Python 对象的 __bool__ 和 __len__ 方法

    对象的__bool__方法,返回对象对应的布尔值。对象的__len__方法,返回对象的长度信息。

    字符串 'True' 和 'False' 都将被转换为布尔值 True

    字符串是一种序列类型,__len__方法决定了他将转换为哪种布尔值。由于'True''False'的长度都大于0,因此他们都将转换为True

    bool('False')
    True
    bool(())
    False