Python连续比较运算符的可读性问题

最新在CSDN中回答了用户一个问题,也被采纳了。在此过程中也学习到了Python连续比较运算符,感觉Python的连续比较运算符可读性很一般,写代码的时候很容易就理解错。

Python连续比较运算符的可读性问题

  • 前言
  • 一、CSDN问答用户关于Python表达式的疑问
  • 二、问题分析过程
    • (一)把两个不同结果的表达式列出来
    • (二)对两个表达式进行简化
    • (三)在PyCharm开发环境中进行测试
    • (四)查阅资料得出结论
  • 三、总结

前言

  • ①连续比较运算符简介: Python中,比较运用符<、>、<=、>=、== 、!=可以连用,但语法规则和其它编程语言不一样。
  • ②连续比较运算符案例: == 为例,具体语法规则是:a == b == c == d 等价于 a == b and b == c and c == d

一、CSDN问答用户关于Python表达式的疑问

Python连续比较运算符的可读性问题CSDN问答用户提出的问题链接:👉https://ask.csdn.net/questions/7887166
截图如下:

上图中,两个表达式按运算符优先级进行运算,按True==1False==0,结果应该都是True吧,可是这里怎么会不同呢?有人给咱解解惑吗?谢谢。

二、问题分析过程

(一)把两个不同结果的表达式列出来

Python连续比较运算符的可读性问题首先我们先把两个不同结果的表达式列出来,方便一步一步求解问题,了解Python解析器解析表达式的运作过程。同时也需要复习一下Python的运算符相关知识👉Python运算符及用法(超级详细)

5+2>3==2**0
(5+2>3)==2**0

(二)对两个表达式进行简化

Python连续比较运算符的可读性问题由于**的优先级比==高所以以上两个表达式可以等价为:

5+2>3==1
(5+2>3)==1

Python连续比较运算符的可读性问题对于第一个表达式,+号优先级最高,同理表达式2括号中的表达式也是+号优先级较高,所以又可以等价为:

7>3==1
(7>3)==1

(三)在PyCharm开发环境中进行测试

Python连续比较运算符的可读性问题到这里,我们使用PyCharm运行上面的表达式,结果如下:

Python连续比较运算符的可读性问题所以该问题就变成,7>3==1(7>3)==1表达式计算的结果为什么不是都是True

(四)查阅资料得出结论

Python连续比较运算符的可读性问题经过查阅资料,发现Python支持连续的比较运算符:a > b == c,但它其实是 a > b and b == c 的简略写法,而不是表示先进行计算 a > b ,然后用结果判断是否等于c,也不是判断a是否大于 b == c 的结果。

Python连续比较运算符的可读性问题所以7>3==1应为7>3 and 3==1False

Python连续比较运算符的可读性问题连续比较运算符参考阅读:👉python语法糖之连续比较表达式

三、总结

Python连续比较运算符的可读性问题通过问题的解答,自己又学会了一个Python的知识点,原来运算符还可以连续运算。但在使用的时候要非常注意,因为它和我们看代码的习惯很不一样,很容易就理解错了或者导致代码出现意向不到的结果。

Python连续比较运算符的可读性问题反过来想一想,为什么Python要搞个这样的语法,是不是就是为了程序员一时的方便,写代码更快更简短,但这极大的影响了程序的可读性,同时不便于程序的维护和更新。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2023年4月6日
下一篇 2023年4月6日

相关推荐