这里到底什么意思
>>> 3 and 44
>>> 4 or 5
4
请问这里到底什么意思为什么会直接出现数字呢? 因为 它们不是 ==, !=, <, > 等这些 “比较运算符” ,结果是 布尔值 。
而是 “逻辑运算符” not, and, or,其结果是 按其特定逻辑执行的、最终的 表达式计算结果。具体规则,请百度。
{:10_282:}
首先要知道 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]