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

举报
海拥 发表于 2021/09/14 16:38:07 2021/09/14
【摘要】 现实生活中会出现一些情况,当我们需要做出一些决定时,我们会根据这些决定来决定下一步应该做什么。类似的情况也出现在编程中,我们需要做出一些决定,并根据这些决定我们将执行下一个代码块。本文章为系列文章,关于【Python编程基础】控制流的共七篇文章。初学者可以尝试这些测试代码,在 Python 编译环境中动手操作以加深印象。🌟【Python编程基础】控制流之 if else 语句🌟【Pyth...

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

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

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

@TOC

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

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 文档

我已经写了很长一段时间的技术博客,这是我的一篇基础教程。希望你们会喜欢!

Java、Python、算法知识体系 | PPT、简历模板 | 游戏源码 | IT行业趣味资讯 | 装机必备软件

可关注公众号【海拥】回复【资料】或者【代码】获取

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

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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