鱼C论坛

 找回密码
 立即注册
查看: 2760|回复: 4

[已解决]逻辑操作符运算求解

[复制链接]
发表于 2022-11-22 22:05:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
(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: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)。
   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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)。
   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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 连接 ...

逻辑清晰
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-23 10:38:11 | 显示全部楼层
  1. (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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-3 02:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表