在Python中,13和9等于多少?

0 投票
2 回答
52 浏览
提问于 2025-04-14 18:01

布尔运算符 'and' 的意思是“与”,当两边的值都是 True 时,它才会返回 True。在这里,除了0以外的任何数字都被认为是 True。所以在下面的代码中,python 应该返回 True

13 and 19

但是为什么它返回了19呢?

2 个回答

0

表达式 x and y 首先会先看 x 的值。如果 x 是假的(比如说是 0),那么就直接返回 x 的值;如果 x 不是假的,那么就会去看 y 的值,并返回 y 的值。

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

简单来说,如果 x 是 0,那么结果就是 0;如果 x 不是 0,那么结果就是 y 的值。

0

布尔运算符 and 在两个条件都为 True 时返回 True

如果两个条件都是字面上的 True,比如 True and True,那结果自然就是 True。对于其他值来说,它们要么是“真实的”,要么不是,这种情况下,最后一个值会被传递下去。1

这是因为你不总是想要一个布尔值。如果写成 test = x and "works!" or "nope",如果它返回一个布尔值而“吞掉”了你的字符串,那就太烦人了。

如果你真的想要一个布尔值,可以用 bool() 来转换,这样可以把“真实的”值变成 True,而其他的则变成 False


1 很多编程语言都遵循这个传统,类型有一个“真实的”状态,比如 Ruby 中 13 and 19 会得到 19,JavaScript 中 13 && 19 也会得到 19。如果 Python 的行为和这些语言差别太大,可能会引起很大的反响,因为这是大家期望的行为。

撰写回答