|
发表于 2022-12-22 23:28:40
|
显示全部楼层
本楼为最佳答案
因为python中任何对象都可以作为逻辑操作符的操作对象(有一些或者说大部分的编程语言只支持布尔类型来参与到逻辑表达式中),所以 python 中任何对象都可以作为逻辑表达式的值,
在 python 中所有对象的零值(整数的零值为0,浮点数的零值为0.0,列表的零值为{} 等等)被判定为 False 之外,其它对象都被判定为 True,
而短路原则就是如果左值已经可以确定整个表达式的值就不再看右值
or 运算为一真则真,所以只要 or 运算的左值等同于 True(也就是任何对象的非零值),则结果为左值,否则即为右值;而 and 运算为一假则假,所以只要 and 运算的左值等同于 False(也就是任何对象的零值),则结果为左值,否则即为右值
所以 0 or False 中的 0 不能确定整个表达式的值,因为 0 不为真,所以 0 or False 的结果为它的右值,即 False,然后 0 or False or False 则成了 False or False,左值还是不为真,所以结果为右值,即 False
|
|