python return a or b
一:0、’’、[]、()、{}、None 在布尔上下文中为假;其它任何东西都为真。
二:and 的返回结果问题:
从左到右计算表达式,返回碰到的第一个假值,如果都为真没有假值,则返回最后一个真值。
三:or 的返回结果问题:
从左到右计算表达式,返回碰到的第一个真值,如果都是假的值,则返回最后一个假的值。
参考作者:莫辜负自己的一世韶光
链接:https://www.jianshu.com/p/2d25448f996d
补充:
今天学习了小甲鱼的短路逻辑才明白了其中的道理:
Python 中任何对象都能直接进行真值测试(测试该对象的布尔类型值为True 或者False),用于if或者while语句的条件判断,也可以作为布尔逻辑运算符的操作数。
对于and 和or的运算符,它的计算结果不一定是True或者False,如果其两边的操作数是两个数值,那么它的运算结果也是数值。所以,它的运算结果要看其两边的操作数的类型,以及逻辑运算符。
短路逻辑的核心思想:从左往右,只有当第一个操作数的值无法确定逻辑运算的结果时,才对第二个操作数进行求值
但是要注意:not 运算的结果只有True或False
>>> not 1
False