Python中表达式-1 < 2 == 1为何返回False?
为什么
-1 < 2 == 1在Python中返回False? Python的比较运算符支持链式比较,这是它和不少其他语言的差异点。你之前误以为表达式会被拆解为(-1 < 2) == 1,但实际上Python会把a < b == c这类连续比较解析为a < b and b == c,也就是同时验证前后两个比较条件是否都成立。
放到你的例子里,-1 < 2 == 1等价于:
-1 < 2 and 2 == 1
拆分计算两个子条件:
-1 < 2的结果是True2 == 1的结果是False
True and False的逻辑与运算结果就是False,这就是最终输出为False的原因。
如果想按照你最初的思路计算,需要手动添加括号改变运算优先级:
(-1 < 2) == 1
此时True == 1会返回True——因为Python里布尔类型是整数的子类,True对应整数1,False对应整数0。
内容的提问来源于stack exchange,提问作者Talha Tayyab
相关产品推荐
相关产品推荐

