Python从1<2<3的语法糖说起

Posted 杨浪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python从1<2<3的语法糖说起相关的知识,希望对你有一定的参考价值。

python有一个很有意思的语法糖你可以直接写1<2<3。

这复合我们通常意义上的数学不等式,但对学过C等语言其实是有疑惑的。

我们知道不等式返回的其实是个Bool值,在C中是1,0因此C中下面情况是正确的

0<0<1

因此我们看下面这个情况

True == True == False
#False
False == False == True
#False

从通常意义来说==号从右往左结合,无论如何值都应该是True,但是结果确是False

这就是源于python的一个语法糖,对于运算优先级的规定。

所有比较类型的运算符拥有同样的优先级,会从左至右链接起来共同作为一个比较段( all have the same precedence and have a left-to-right chaining feature as described in the Comparisons section)。

in, not in, is, is not, <, <=, >, >=, !=, ==

比如一个典型的True == True == False它实质是如下的逻辑关系

(True == True) and (True == False)

对于 a<b<c这种关系中的任意子项都满足其逻辑关系,和数学上a<b<c是一样的
即对a<b<c,a需满足a<b and a


以上是关于Python从1<2<3的语法糖说起的主要内容,如果未能解决你的问题,请参考以下文章

Python3的语法糖和解析式

Python进阶-XVIII 封装(属性静态方法类方法)语法糖反射

python装饰器&语法糖

mockJs语法糖用例

Python中语法糖及带参语法糖

java8语法糖List<Integer>,List<String>,String之间互转