Monsieur. 发表于 2021-6-16 22:51:39

这里到底什么意思

>>> 3 and 4
4
>>> 4 or 5
4



请问这里到底什么意思为什么会直接出现数字呢?

阿奇_o 发表于 2021-6-16 23:02:14

因为 它们不是 ==, !=, <, > 等这些 “比较运算符” ,结果是 布尔值 。

而是 “逻辑运算符” not, and, or,其结果是 按其特定逻辑执行的、最终的 表达式计算结果。具体规则,请百度。

{:10_282:}

Twilight6 发表于 2021-6-16 23:02:52


首先要知道 Python 中非 0 的数值布尔类型值均为 True ,而 0 为 False,另外这里涉及的是短路逻辑

短路逻辑规则如下:
表达式从左至右运算,若 or 的左侧逻辑值为 True ,则短路 or 后所有的表达式(不管是 and 还是 or),直接输出 or 左侧表达式 。
若 or 的左侧逻辑值为 False ,则输出or右侧的表达式,不论其后表达式是真是假,整个表达式结果即为其后表达式的结果
表达式从左至右运算,若 and 的左侧逻辑值为 False ,则短路其后所有 and 表达式,直到有 or 出现,输出 and 左侧表达式到 or 的左侧,参与接下来的逻辑运算。
若 and 的左侧逻辑值为 True,则输出其后的表达式,不论其后表达式是真是假,整个表达式结果即为其后表达式的结果
若 or 的左侧为 False ,或者 and 的左侧为 True 则不能使用短路逻辑。

这里可以简单理解下结果情况:

and 两边全为真则返回右边的值,否则都返回 0 即 False

or 只要一遇到真,就返回该处的值,后续的判断被短路


页: [1]
查看完整版本: 这里到底什么意思