【Python编程基础】控制流之链式比较运算符

海拥* 2021-09-15 04:19:30
编程 Python 基础 控制 链式


现实生活中会出现一些情况,当我们需要做出一些决定时,我们会根据这些决定来决定下一步应该做什么。类似的情况也出现在编程中,我们需要做出一些决定,并根据这些决定我们将执行下一个代码块。

本文章为系列文章,关于【Python编程基础】控制流的共七篇文章。初学者可以尝试这些测试代码,在 Python 编译环境中动手操作以加深印象。

【Python编程基础】控制流之 if else 语句
【Python编程基础】控制流之链式比较运算符
【Python编程基础】控制流之 For 循环
【Python编程基础】控制流之 While 循环
【Python编程基础】控制流之 break 语句
【Python编程基础】控制流之 pass 语句
【Python编程基础】控制流之 Python 中的循环技术

【Python编程基础】控制流之链式比较运算符

检查两个以上的条件在编程语言中很常见。假设我们要检查以下条件:

a < b < c

最常见的语法如下:

if a < b and b < c :
{
...}

在 Python 中,有一种更好的方法可以使用比较运算符 Chaining来编写它。运算符的链接可以写成如下:

if a < b < c :
{
.....}

根据Python 中的结合性和优先级,Python中的所有比较操作都具有相同的优先级,低于任何算术、移位或按位运算的优先级。同样与 C 不同的是,像 a < b < c 这样的表达式具有数学中的常规解释。

Python 中的比较运算符列表:

">" | "<" | "==" | ">=" | "<=" | "!=" | "is" ["not"] | ["not"] "in"

链接比较运算符:

1.比较产生布尔值:True 或 False。
2.比较可以任意链接。例如

x < y <= z is equivalent to x < y and y <= z,

除了 y 只计算一次。
(但在这两种情况下,当发现 x < y 为假时,根本不计算 z)。

3.形式上,如果 a, b, c, …, y, z 是表达式而 op1, op2, …, opN 是比较运算符,那么 a op1 b op2 c … y opN z 等价于 a op1 b 和 b op2 c and … y opN z,除了每个表达式最多计算一次。
4.并且

a op1 b op2 c

并不意味着 a 和 c 之间的任何类型的比较,所以

 a < b > c

是完全合法的。

# 用于说明 chaining 比较运算符的 Python 代码 
x = 5
print(1 < x < 10)
print(10 < x < 20 )
print(x < 10 < x*10 < 100)
print(10 > x <= 9)
print(5 == x > 4)

输出:

True
False
True
True
True

另一个例子:

# 用于说明 chaining 比较运算符的 Python 代码
a, b, c, d, e, f = 0, 5, 12, 0, 15, 15
exp1 = a <= b < c > d is not e is f
exp2 = a is d > f is not c
print(exp1)
print(exp2)

输出:

True
False

本文参考:Python 3 文档

欢迎大家在评论区提出意见和建议!

版权声明
本文为[海拥*]所创,转载请带上原文链接,感谢
https://haiyong.blog.csdn.net/article/details/120287948

  1. 程序員是這樣學習【中藥學】知識的,先用python采集分析一波
  2. Python - pydantic(2)嵌套模型
  3. Python - 面向对象编程 - __dict__
  4. Python - 面向对象编程 - 反射 hasattr、getattr、getattr、delattr
  5. Python - 面向对象编程 - 实战(6)
  6. Python - 面向对象编程 - 魔术方法(双下划线方法)
  7. Python - 面向对象编程 - __new__() 和单例模式
  8. Python - 面向对象编程 - __call__()
  9. Python - repr()、str() 的区别
  10. Python - 面向对象编程 - __repr__()
  11. Python - eval()
  12. 用 Django REST framework 来实现一次性验证码(OTP)
  13. Python code checking tool (static code review)
  14. Python QT GUI Design: overview of UI interface visualization components and properties (Fundamentals - 3)
  15. 【算法学习】1863. 找出所有子集的异或总和再求和(java / c / c++ / python / go / rust)
  16. [apprentissage de l'algorithme] 1863. Trouver la somme Xor de tous les sous - ensembles (Java / C / C + + / python / go / Rust)
  17. Python code checking tool (static code review)
  18. Python 万能代码模版:爬虫代码篇
  19. Modèle de code universel Python: Code crawler
  20. 收藏 | Python 之 Pandas系统性总结!
  21. Take you to learn more about nginx basic login authentication: generating passwords using Python
  22. 超硬核Python避坑学习方案奉上!入门到就业一篇就搞定!
  23. Talk about how JMeter executes Python scripts concurrently
  24. Talk about how JMeter executes Python scripts concurrently
  25. Talk about how JMeter executes Python scripts concurrently
  26. python内置函数通过字符串的方式来执行函数代码块,类似java的反射机制相当强大!
  27. python内置函数通过字符串的方式来执行函数代码块,类似java的反射机制相当强大!
  28. python內置函數通過字符串的方式來執行函數代碼塊,類似java的反射機制相當强大!
  29. Les fonctions intégrées Python exécutent des blocs de code de fonction à travers des chaînes, et les mécanismes de réflexion comme Java sont assez puissants!
  30. Python module 1
  31. Python tip: use namedtuple instead of manually created classes
  32. Python - poetry(3)配置项详解
  33. Python - poetry(3)配置项详解
  34. Python - poetry(3)配置項詳解
  35. Python - poetry(3)配置項詳解
  36. Python - détails de l'élément de configuration Poetry (3)
  37. Python - détails de l'élément de configuration Poetry (3)
  38. Python案例实战,pygame模块,Python实现字母代码雨
  39. Python calculation vector angle code
  40. Python基础面试题解读|《Python面试100层》|第1层
  41. 面对小白的pandas命令手册+练习题【三万字详解】
  42. 面對小白的pandas命令手册+練習題【三萬字詳解】
  43. Face au Manuel de commande pandas de Xiaobai + question d'exercice [30 000 mots pour plus de détails]
  44. Interprétation des questions d'entrevue de base Python | 100 couches d'entrevue Python | couche 1
  45. Python data structure and algorithm (17) -- merge sort
  46. Les fonctions intégrées Python exécutent des blocs de code de fonction à travers des chaînes, et les mécanismes de réflexion comme Java sont assez puissants!
  47. Python笔记-uiautomator2截图点击,OpenCV找图
  48. Python文档阅读笔记-OpenCV中Template Matching
  49. Python笔记-利用OpenCV的matchTemplate屏幕找图并使用pyautogui点击
  50. Python筆記-利用OpenCV的matchTemplate屏幕找圖並使用pyautogui點擊
  51. Notes python - utilisez l'écran matchtemplate d'OpenCV pour trouver des images et cliquez sur
  52. Notes de lecture de documents python - Matching de modèles dans OpenCV
  53. Notes python - capture d'écran de l'automate 2 Cliquez pour ouvrir la vue
  54. python链接云服务器的mysql8
  55. python鏈接雲服務器的mysql8
  56. Mysql8 pour les serveurs Cloud liés Python
  57. Python资源大集合,要的话可以拿走!
  58. ️万字【Python基础】保姆式教学️,小白快速入门Python!
  59. ️萬字【Python基礎】保姆式教學️,小白快速入門Python!
  60. Wanzi [base Python] Baby - sitting Teaching, Little White Quick Start Python!