逻辑操作符运算求解
(not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)为什么答案为4 (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-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)。
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:} (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]