eviljohn 发表于 2020-11-25 13:52:03

python(新)第11讲-课后作业第2题

2. 请问下面表达式的值是什么?
>>> 3 and 5 + True or False
答:6。
解析:基于“短路逻辑”(从左往右,只有当第一个操作数的值无法确定逻辑运算的结果时,才对第二个操作数进行求值),3 and 5 的结果为 5。另外,True 和 False 参与运算是是作 1 和 0 使用的,所以结果为 6。

答案是6,但是求解思路不是 ‘+’的优先级比 and 和 or 高吗? 是先算 5 + True == 6 吗?然后才是 (3 and 6) or False

昨非 发表于 2020-11-25 13:58:48

本帖最后由 昨非 于 2020-11-25 14:00 编辑

前面理解的没错
3 and 6 等于6
6 or false 等于6
所以最后答案是6

还不理解的话参考这篇帖子的答案
<font color="red">[已解决]</font>关于python第6讲课后练习题
https://fishc.com.cn/thread-182539-1-1.html
(出处: 鱼C论坛)

eviljohn 发表于 2020-11-25 14:12:02

谢谢回答!所以我的问题就是解析里面写的先算‘3 and 5’ 是不是有误,而应是‘3 and 6’

昨非 发表于 2020-11-27 21:28:21

eviljohn 发表于 2020-11-25 14:12
谢谢回答!所以我的问题就是解析里面写的先算‘3 and 5’ 是不是有误,而应是‘3 and 6’

先算5+True(1)=6
页: [1]
查看完整版本: python(新)第11讲-课后作业第2题