图图666 发表于 2020-10-18 17:13:07

关于python第6讲课后练习题

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

(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呢,看小甲鱼的解释有点看不懂,求大神解答一下,谢谢!

昨非 发表于 2020-10-18 17:17:32

运算符优先级:
not > and > or
所以上面哪一行代码的解释本质就是优先级高的加个括号

冬雪雪冬 发表于 2020-10-18 17:42:21

1.优先级,2.短路原则
优先级见2楼。
短路原则:对于or如果前一个为True,就不用判断后一个了。如 3 or 4,前面为3是True,就不用再看4了,结果为True,返回3;如 4 and 5,前面为4是True,还要判断后面的,后面5为True,则结果为True,返回5

altf11 发表于 2020-10-19 00:29:44

无非就是优先级别和短路原则
对于优先级没什么可说的(not > and > or)

对于短路原则,两句话概括:
1.就 and 而言,有0则0(即只要有假的,就返回该假值,后面的就不用看了;全为真的则返回最后一个)举例:
print('hello' and [] and 5 and '' and False)# 返回[]
print(9 and 1 and True)# 返回True

2.就 or 而言,有1则1(即只要有真的,就返回该真值,后面的就不用看了;全为假的则返回最后一个)举例:
print(0 or 'hello' or True or '')# 返回hello
print(0 or [] or '' or False)# 返回False

qin_yin 发表于 2020-10-19 00:46:27

我打了草稿,加上楼上的给你的回复,你可以看下,字写的丑了的点,可能看上去不好理解{:10_245:}
https://fishc.com.cn/home.php?mod=space&uid=961263&do=album&picid=12982#pic_block

qin_yin 发表于 2020-10-19 01:17:50

qin_yin 发表于 2020-10-19 00:46
我打了草稿,加上楼上的给你的回复,你可以看下,字写的丑了的点,可能看上去不好理解

重新发下

zjhlive 发表于 2020-10-19 10:34:00

非0即True,and中有一False则返回的是就是该False,如果两个同为True则返回第二位置

图图666 发表于 2020-10-19 22:59:26

谢谢大家

Sheen123 发表于 2020-11-4 14:14:18

and一真一假返回假,俩真返回后一个;or一真一假返回真,两真返回前一个。
页: [1]
查看完整版本: 关于python第6讲课后练习题