鱼C论坛

 找回密码
 立即注册
查看: 2774|回复: 6

[已解决](4<5<6) == 4<5 and 5<6 这个表达式为什么会返回False呢?

[复制链接]
发表于 2017-11-1 13:37:16 | 显示全部楼层 |阅读模式

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

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

x
4<5<6 == 4<5 and 5<6 这个表达式为什么会返回False呢?
我是这么理解的啊,前面的为True,后面的表达式也成立,也为True,那应该是成立的啊。

(4<5<6) == (4<5 and 4<6) 这样提高优先级就返回True,但是还是有点不大明白,麻烦大家给指点下,谢谢啦
最佳答案
2017-11-1 14:54:43
test.png

连续的比较运算符会被拆分成用and来链接
比如
2<3 == 3
实际执行的是 2<3 and 3==3

你给出的式子最后实际执行的是

4<5 and 5<6 and 6==4 and 4<5 and 5<6

True and True and False and True and True

最终返回False
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-11-1 14:24:08 | 显示全部楼层
这里涉及到优先级的问题,<, >不比==优先,一般书上写的是同级,但从运算结果上看==是优先的。
我们简化一下:
4<5==4<5
返回False
(4<5)==(4<5)
则返回True
4<(5==4)<5
则与4<5==4<5一样返回False
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-1 14:54:43 | 显示全部楼层    本楼为最佳答案   
test.png

连续的比较运算符会被拆分成用and来链接
比如
2<3 == 3
实际执行的是 2<3 and 3==3

你给出的式子最后实际执行的是

4<5 and 5<6 and 6==4 and 4<5 and 5<6

True and True and False and True and True

最终返回False
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-1 15:11:20 | 显示全部楼层
冬雪雪冬 发表于 2017-11-1 14:24
这里涉及到优先级的问题,不比==优先,一般书上写的是同级,但从运算结果上看==是优先的。
我们简化一下: ...

test1.png
冬哥
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-1 15:51:46 | 显示全部楼层

所以我说:一般书上写的是同级
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-1 15:54:09 | 显示全部楼层
冬雪雪冬 发表于 2017-11-1 15:51
所以我说:一般书上写的是同级

我认为,实际运行的时候也是同级的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-1 16:02:17 | 显示全部楼层
Teagle 发表于 2017-11-1 15:54
我认为,实际运行的时候也是同级的

你说的有理。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-3 14:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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