萌新求助大佬解答一下小甲鱼零基础学习python第四讲课后习题。
完全看不懂这道题。。。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 3 and 4 == 4 不应该是False吗。。
逻辑短路
or 如果左边的真,右边的就不判断了,返回的就是左边那个值
and 如果两边都为真,返回的就是右边那个值 BngThea 发表于 2019-6-4 16:17
逻辑短路
or 如果左边的真,右边的就不判断了,返回的就是左边那个值
那为什么 下边的 3 and 4 == 4
在python里会显示true?
不应该是3 和 4 同时等于4 才显示true吗?
3明显不等于4呀 几个规则:
0,空字符串、空列表、空元祖、空字典,空集合等为False,其它为True
and左右都为True,结果为Ture,其它情况为False
or左右都为False,结果为False,其它为True
not优先级最高,and高于or
短路原则见2楼。
not 1 结果为False,返回0
0 and 1,左边为0 Flase,结果就是0 False
0 or 4,先看左边为0 False,再看右边4 True,结果4 True
页:
[1]