NC丶泽 发表于 2022-11-22 22:05:17

逻辑操作符运算求解

(not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
为什么答案为4

柿子饼同学 发表于 2022-11-22 22:14:35

(not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
0 or 0 or (3 and 4) or (5 and 6) or (7 and 8 and 9)# 这里 3 and 4 运用短路逻辑算出来是4
然后就变成
4 or (5 and 6)... 这里短路逻辑 , or 前面为真 , 后面就不用算
变成
4 or (7 and 8 and 9) 这里同上
结果为 4

jackz007 发表于 2022-11-22 22:37:12

本帖最后由 jackz007 于 2022-11-23 00:13 编辑

(not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
      这是一个通过 4 个 or 连接了 5 个子表达式的逻辑表达式,根据短路逻辑,需要按照从左向右的方向顺序测试各个子表达式的值,如果为 False,就继续测试下一个子表达式,如果为 True,那么,该子表达式的值就是整个表达式的值。
      【not 1】:False 需要继续测试
      【(0 and 1)】:False需要继续测试
      【(3 and 4)】:True 停止测试。接下来,让我们看看这个子表达式的值具体是多少。这个子表达式属于用 and 连接两个数值,如果左值为 False,那就无需测试右值,子表达式的值锁定为 False;如果左值为 True,那么,子表达式的值由右值决定,现在,左值为 3 是 True,那么,右值 4(True)就是子表达式的值,同时,整个表达式的值也因此是 4 (True)。
   

Mefine 发表于 2022-11-23 10:37:47

jackz007 发表于 2022-11-22 22:37
(not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
      这是一个通过 4 个 or 连接 ...

逻辑清晰{:10_256:}

zhangjinxuan 发表于 2022-11-23 10:38:11

(not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
not 1 为 False,所以还要往后看

0 and 1 为 False,所以还要往后看

3 and 4为 True,所以后面不用看了,正是因为 3 and 4 返回的 4

因为 Python 解释器在处理 and 时要看两个,所以他把 3 看了并不能确定结果,只能看 4,4为真,所以返回 4
页: [1]
查看完整版本: 逻辑操作符运算求解