设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 13257|回复: 3
打印 上一主题 下一主题

关于==的结合性和运算规则的问题

[复制链接]

1

主题

0

好友

145

积分

注册会员

Rank: 2

跳转到指定楼层
楼主
发表于 2017-2-24 12:25:41 |只看该作者 |倒序浏览
在其他语言中‘==’号的优先级几乎最低而且是左结合的。
但是这几天看crossin老师的教程时,想到了一个问题并做了验证:

False == False == True

对于这个语句,自然语言的理解当然是 (False == False) == True了结果也应该是True才对。
但是我在Python里运行得到的结果却是 False .

不知道解释器是怎么解释这条语句的?


此外,我还尝试做了一份真值表,试图探究连续两个==号的判断逻辑
A == B == C
我发现只有在A,B,C同为True或同为False时,输出结果才是True。其他情形全为False。
那么从真值表上来看A == B == C这个语句等价于A^B^C或ABC。
这与前面提到的自然语言的理解并不符合啊?

那么Python的解释器难道不是通过堆栈结构来解释 代码么?
回复

使用道具 举报

1

主题

0

好友

145

积分

注册会员

Rank: 2

沙发
发表于 2017-2-24 12:44:04 |只看该作者
我用C和C++都试了一下,False == False == True的输出结果均为True
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

板凳
发表于 2017-2-24 16:54:26 |只看该作者
python里这不是一个先后的运算,它相当于
False == False and False == True
类似的还有
1 < 3 > 2
这种写法 c/c++ 是不允许的
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

145

积分

注册会员

Rank: 2

地板
发表于 2017-2-24 18:24:37 |只看该作者
crossin先生 发表于 2017-2-24 16:54
python里这不是一个先后的运算,它相当于
False == False and False == True
类似的还有

原来如此,谢谢老师
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-11-23 13:02 , Processed in 0.016085 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部