【发布时间】:2017-06-18 05:53:36
【问题描述】:
在阅读 python 中的逻辑运算符时,我遇到了表达式:
5 and 1
输出:1
5 or 1
输出:5
谁能解释一下这是如何工作的?
我知道 logical 运算符的 operands 是 Boolean
【问题讨论】:
-
按位运算的结果相同。可能只是巧合
-
这些是逻辑运算符,您可能只是将它们视为逻辑实体。在这种情况下,会发生短路。所以在或的情况下,1 或 5 为 1。不检查 5。在 5 或 1 的情况下,结果为 5(不检查 1)。在 and 的情况下,返回后面的参数。 1 和 5 = 5 而 5 和 1 = 1
-
同样值得尝试
1 and 5和1 or 5分别返回 5 和 1 并且更清楚地表明正在评估条件而不是按位结果。 -
为了进一步理解这一点,我建议您对离散数学和命题逻辑进行一些简单的阅读;如果您有时间,this 是一个很好的参考。
-
重新打开了这个问题,因为它比应该重复的stackoverflow.com/questions/47007680/… 更年轻。
标签: python