鱼C论坛

 找回密码
 立即注册
查看: 1113|回复: 5

看不太明白,求大佬再清晰的的解释一下。

[复制链接]
发表于 2019-10-22 10:15:31 | 显示全部楼层 |阅读模式

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

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

x
4. 请用最快速度说出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9

如果你的回答是 0,那么小甲鱼很开心你中招了!
答案是:4

not or and 的优先级是不同的:not > and > or

我们按照优先级给它们加上括号:(not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
== 0 or 0 or 4 or 6 or 9
== 4

为啥是 4?

大家还记得第四讲作业提到的“短路逻辑”吗?3 and 4 == 4,而 3 or 4 == 3。
所以答案是:4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-22 10:27:09 | 显示全部楼层
如果前面明白了,那么我们从这里开始
0 or 0 or 4 or 6 or 9
0 or 0 肯定是0,所以变成了
0 or 4 or 6 or 9
0 or 4,两者有一个为True就整体为Ture,先看前面是0,为False,再看后面4,为True,所以整体为True,对于python只要不是为0,为空的都是True,这里就直接用4作为True的代表了,所以变为
4 or 6 or 9,因为前面是True,所以根本就不用管后面的值了(也是为了简化运算),所以最终的值是4.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-22 10:58:49 | 显示全部楼层
学习了~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-22 11:24:39 | 显示全部楼层
逻辑or在读到一个true之后就不会读另一个or了,所以后面全是or的情况下就只会得到第一个为true的值4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-22 20:23:07 | 显示全部楼层

     (not 1) or (0 and 1) or (3 and 4) or (5 and 6) or ((7 and 8) and 9)
== 0 or 0 or 4 or 6 or 9
== 0 or 4 or 6 or 9
== 4 or 6 or 9
== 4 or 9
== 4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-22 22:09:10 From FishC Mobile | 显示全部楼层
学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 01:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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