栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python有趣的一个基础语法--非关联运算符

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python有趣的一个基础语法--非关联运算符

      在学习运算符计算的时候我们一般是先看优先级再看它的结合性来计算,但今天学习到了一个很有意思的东西,就写下来存个档。

      下面这个题目

>>> a = 3
>>> b = 0
>>> print(a < b != b <= 2)

      在进行对上面这段代码进行运算的时候,因为<、!=、<=都是同一优先级且为左结合性(参考),因此我们一步步算下来很容易得出

>>> a < b
False
>>> False != b
False
>>> False <= 2
True

      我们来运行一下上面的print语句看看结果

>>> print(a < b != b <= 2)
False

      是的,你没看错,结果是False,说实话,我想了很久都没想明白,为什么结果会是这玩意儿。
      又经过了一系列的尝试,我发现问题出现在这种地方,不管是我优先计算左边,还是优先计算右边,发现都不合理。

>>> 2 != 2 <= 2
False
>>> (2 != 2) <= 2
True
>>> 2 != (2 <= 2)
True

      终于,我在这里找到了答案。
      在出现非关联运算符的时候计算方式和其它运算符是不同的,这里也给出了一段解释

For example, the expression 5 < 7 < 9 does not mean (5 < 7) < 9 or 5 < (7 < 9). Also, the statement 5 < 7 < 9 is same as 5 < 7 and 7 < 9, and gets evaluated from left-to-right.

      这就很好理解了,我们计算的

>>> 2 != 2 <= 2
其实是
>>> 2 != 2 and 2 <= 2

      这样这个问题也就解决了

>>> a < b != b <= 2
也就等价于
>>> a < b and b != b <= 2
这样子也就是
>>> a < b and b != b and b <= 2
False
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/286174.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号