引用
Python Docs
请注意,两者都不是
and
也不
or
限制
这个
价值
和
类型
他们回来了
到
False
和
True
,而是返回
最后计算的参数
. 这个
有时是有用的,例如,如果
s
应该替换为
默认值如果为空,则表达式
s or 'foo'
收益率
期望值。
这就是Python是如何评估布尔表达式的,上面的文档让我们了解了为什么他们这样做。
要获取布尔值,只需对其进行类型转换。
return bool(len(args) and max(args)-min(args))
为什么?
短路。
例如:
2 and 3 # Returns 3 because 2 is Truthy so it has to check 3 too
0 and 3 # Returns 0 because 0 is Falsey and there's no need to check 3 at all
同样的道理
或
也就是说,它将返回
诚实的
一旦找到它,因为计算表达式的其余部分是多余的。
而不是返回核心
真
或
假
,python返回
诚实的
或
法西
,无论如何,这将评估为
真
或
假
. 你可以按原样使用这个表达式,它仍然有效。
知道什么是
诚实的
和
法西
检查
Patrick Haugh's answer