码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-03-12 21:24:38      阅读:571      评论:0      收藏:0      [点我收藏+]

标签:span   com   判断   ken   语言   develop   链式   问题   运算符   

在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。此时,这个式子就等价于 TrueandTrue。所以返回的结果为True。

注:True相当于1,False相当于0

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

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

标签:span   com   判断   ken   语言   develop   链式   问题   运算符   

原文地址:https://www.cnblogs.com/shanghongyun/p/10519579.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!