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

举报
海拥 发表于 2021/09/15 00:07:25 2021/09/15
【摘要】 现实生活中会出现一些情况,当我们需要做出一些决定时,我们会根据这些决定来决定下一步应该做什么。类似的情况也出现在编程中,我们需要做出一些决定,并根据这些决定我们将执行下一个代码块。 本文章为系...

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

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

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

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

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

a < b < c

  
 
  • 1

最常见的语法如下:

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

  
 
  • 1
  • 2

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

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

  
 
  • 1
  • 2

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

Python 中的比较运算符列表:

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

  
 
  • 1

链接比较运算符:

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

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

  
 
  • 1

除了 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 

  
 
  • 1

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

 a < b > c

  
 
  • 1

是完全合法的。

# 用于说明 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)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

输出:

True
False
True
True
True

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

另一个例子:

# 用于说明 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)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

输出:

True
False

  
 
  • 1
  • 2

本文参考:Python 3 文档

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

文章来源: haiyong.blog.csdn.net,作者:海拥✘,版权归原作者所有,如需转载,请联系作者。

原文链接:haiyong.blog.csdn.net/article/details/120287948

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。