python - 有人可以解释这里的逻辑或我在问什么吗? ( bool 运算)

标签 python

在 Python 2.7 中

当向口译员询问以下内容时:

(1 or 3) > 2 它返回 False

这是为什么?如果 1 或 3 大于 2,我实际上问的是什么,显然不是。

类似地,询问 (1 or 5) in range(2,6) 也会返回 False

我 100% 确定它与我的 (x 或 y) 部分有关,但同样,这是为什么?我不太需要用不同的方式来陈述这样的事情,据我所知,我可以问:

if x in range(2,6) or y in range(2,6):

但我只是想知道为什么它不起作用!

最佳答案

让我们检查一下 (1 or 3) > 2:

正确的表达方式是:

>>> 1 > 2 or 3 > 2
True

另一种更通用的方式如下:

>>> t = (1, 3)
>>> any(el > 2 for el in t)
True

这里,t 可以是任何可迭代的。

关于python - 有人可以解释这里的逻辑或我在问什么吗? ( bool 运算),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15242093/

相关文章:

python - rand() 的 Matlab 到 Python 转换

python - 我可以告诉 lldb 使用 PATH 中第一个以外的 Python 吗?

python - Pandas 数据框 : columns with long names

python - 在服务器上安全地执行用户提交的 python 代码

python - 将运行计数分配给 3 个 pandas 一组的新列

python - 如何从 Pandas HDF 存储中读取 nrows?

python - 根据其他列的 groupby 为列设置值

python - 在 getopt 命令中查找多个参数 Python 3

python - 使用 Selenium 滚动页面的有效方法

python - 图表中条形图的颜色基于数据框同一行中的 bool 值