True
,则布尔运算符 'and' 返回
True
。 0 以外的任何数字都是 True。所以 python 应该返回
True
for
13 and 19
但是为什么它返回19?
如果双方字面上都是and
,则布尔运算符返回True
True
True
,则情况就是这样,正如毫不奇怪地,
True and True
是
True
。对于其他值,它们是真实或不真实,在这种情况下,链中的最后一个值是传播的值。1 这是因为您并不总是需要布尔值。如果它返回一个布尔值并“吃掉”你的字符串,
test = x and "works!" or "nope"
会很烦人。如果你
真的想要一个布尔值,你可以使用bool()
进行转换,它将从truthful转换为
True
,否则转换为
False
。
1 许多语言都遵循这一传统,其中类型具有“真实”状态,例如 Ruby(13 and 19
产生 19)和 JavaScript(13 && 19
产生
19
)。如果 Python 的行为与此显着不同,则可能会引起轩然大波,因为这是“预期”行为。表达式 x 和 y
简单来说,如果 x 是https://docs.python.org/3/reference/expressions.html#boolean-operations
0
,它将返回 0
y