在Python中,13和9=什么?

问题描述 投票:0回答:2
如果两边都是

True

,则布尔运算符 'and' 返回 
True
。 0 以外的任何数字都是 True。所以 python 应该返回 
True
 for 

13 and 19
但是为什么它返回19?

python boolean
2个回答
0
投票
如果两边都是
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

0
投票

https://docs.python.org/3/reference/expressions.html#boolean-operations

简单来说,如果 x 是

0,它将返回 0

,否则它将返回

y


    
© www.soinside.com 2019 - 2024. All rights reserved.