首页 > 解决方案 > 如何解释整数的布尔运算?

问题描述

假设我们要对两个整数(例如 5 和 7)执行“按位与”运算。结果应该是 5 是有道理的,因为 111 和 101 的并集应该返回 101,这当然是我得到的Python:

5 & 7

Out: 5

我虽然那个布尔值and不应该适用于非布尔值,但令我惊讶的是:

5 and 7
Out: 7

1.5 and 1.7
Out: 1.7

[1,2,3] and [4,5]
Out: [4, 5]

现在我很困惑。这出于某种原因有效,但这意味着什么?这些价值是如何产生的?

标签: pythonboolean

解决方案


如果Pythonand计算结果为 false,则返回其左操作数,否则返回其右操作数。

如果Python 的or值为真,则返回其左操作数,否则返回其右操作数。

请注意,对于布尔操作数,这会产生正确的真值表。他们还保证在选择左边的操作数时根本不会评估右边的操作数。

Python 中的对象是真的,除非它是“零”,包括零长度的集合。


推荐阅读