
上QQ阅读APP看书,第一时间看更新
2.4.3 空值与False
“问得好!”西西船长解释道,“Python语言中,会对变量进行隐含的类型转换。当非布尔类型的数据参与逻辑运算时,Python会自动将它转换成布尔类型”。转换规则是这样的。
1)数值0和其他一些空值的对象,如空字符串、空的列表、空的字典以及保留字None都转换为False。例如:
>>> bool(0) False >>> bool(0.0) False >>> bool(-0) False >>> bool((0-0j)) #复数0-0j False >>> bool('') #空字符串 False >>> bool([]) False >>> bool({}) False >>> bool(None) #保留字None表示什么也没有 False >>> bool() #没有参数时 False
2)其他具有实际值的对象都转换成True。例如:
>>> bool(-1) True >>> bool('a') True >>> bool([0]) True >>> bool({'key':0}) True >>> bool(print) #函数也是一个实际对象 True
“这很符合逻辑——空值对应False,非空值对应True!”克里克里点着头说。