为什么python中"2==2>1"结果为True

为什么Python中“2==2>1”结果为True

在Python中,你可能会发现这样一个奇怪的现象:


>>> 2 == 2 > 1
True
>>> (2 == 2) > 1
False
>>> 2 == (2 > 1)
False

为什么会出现 2==2>1的结果为True?如果说这是运算符的优先级问题,那么后两个式子为什么又都是False?
实际上这涉及了Python的链式对比(ChainedComparisons)。在其他语言中,有一个变量x,如果要判断x是否大于1,小于5,可能需要这样写代码:
if (x > 1 and x < 5)
但是在python中,可以这样写代码:
if 1 < x < 5:
Python能够正确处理两个链式对比的逻辑。回到最开始的问题上,==等于符号和<小于符号,本质没有什么区别。所以实际上2==2>1也是一个链式对比的式子,它相当于2==2and2>1。此时,这个式子就等价于True and True。所以返回的结果为True。
注:True相当于1,False相当于0

原文来自:https://cloud.tencent.com/developer/article/1386941

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值