Python初学者8号 发表于 2021-1-27 15:07:57

关于逻辑的优先

https://fishc.com.cn/thread-37874-1-1.html
这是6讲中的题目


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



这里我不是很理解为什么最后面是 or (7 and 8 and 9)而不是 or (7 and 8 )and 9。我的理解不是从左向右开始进行吗?

求助中

逃兵 发表于 2021-1-27 15:35:28

你的理解也没问题
or (7 and 8 )and 9
or 8 and 9
or 9
连在一起了而已

Frida_yu 发表于 2021-1-27 15:38:46

not > and > or
(not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
not优先,先把not1括起来,之后是and优先,or (7 and 8 )and 9这个还要再处理成or(7 and 8 and 9)(因为and>not)

°蓝鲤歌蓝 发表于 2021-1-27 15:58:23

(7 and 8 and 9)
反正是 从左到右,那么 括全部 和 只括前面两个 又有什么区别呢?
就跟 (1 * 1 * 1) 跟 (1 * 1)* 1 一样   

Python初学者8号 发表于 2021-1-27 16:42:22

谢谢各位,我大概懂了。

呆萌的月饼不呆 发表于 2021-1-28 09:46:34

{:5_91:}
页: [1]
查看完整版本: 关于逻辑的优先