Python 'and' 运算符:比较两个数字时,“and”将返回什么?[复制]

Python 'and' operator: what will 'and' return when comparing two numbers? [duplicate]

提问人:tadams 提问时间:8/7/2022 最后编辑:tadams 更新时间:8/7/2022 访问量:54

问:

打印(45 和 2)

2 结果背后的机制是什么?

python 比较 运算符 operator-keyword

评论

0赞 Kelly Bundy 8/7/2022
@cards 这是一个操作员。不清楚你为什么提出它也是一个关键词。
0赞 Kelly Bundy 8/7/2022
@cards 既不代表运算符,也不代表运算符。由于它的短路,它甚至根本无法表示为一个函数。仍然不清楚你为什么提出关键词(以及为什么你现在证明它是一个关键词,因为我已经同意它是一个)。你认为运算符和关键字是相互排斥的吗?bool.__and__operator.addand
0赞 cards 8/7/2022
@juanpa.arrivillaga,我无意引起这种混乱。我会删除它

答:

1赞 aquinas9000 8/7/2022 #1

根据文档:https://docs.python.org/3/reference/expressions.html#and

“表达式 x 和 y 首先计算 x;如果 x 为 false,则返回其值;否则,将计算 y 并返回结果值。

这基本上意味着只要你保持 2 (45 != 0),你就会得到 45。如果你尝试 print(0 和 2),你会得到 0。

-1赞 Charlie 8/7/2022 #2

运算符检查第一个操作数。如果为真,则返回第二个操作数。否则,将返回第一个操作数。45 是一个非零整数,所以它是真实的。因此,返回第二个操作数 (2)。操作员以类似的方式工作。andor

https://realpython.com/python-and-operator/#using-pythons-and-operator-with-common-objects