"""运算符的优先级和结合性"""
"""
一、什么是运算符的优先级
每个运算符都有固定的优先级。
当表达式中包含优先级不同的运算符时,高优先级的运算符参与运算
比如:运算符*和/的优先级比运算符+和-的优先级高,正所谓"先乘除,后加减"。
"""
# *比+的优先级高,*先参与运算
print(2 + 3 * 4) #14
"""
二、什么是运算符的结合性
每个运算符都有固定的结合性。
当表达式中包含优先级相同的运算符时,结合性定义了哪个运算符先参与运算。
如果运算符的结合性为左,那么左边的运算符先参与运算,
比如:2 + 3 - 4,2 + 3会参与运算
如果运算符的结合性为右,那么右边的运算符先参与运算,
比如:a = b = 18,b = 18 会先参与运算
"""
"""
三、正确使用运算符的优先级和结合性
没有必要记忆所有运算符的优先级和结合性。
对于包含多个运算符的复杂表达式,其可读性是较低的,为了提高可读性,建议的做法有两种:
(1)在复杂表达式中使用小括号指定运算顺序。
(2)将复杂表达式拆分成几步来完成。
"""
is_has_key = False
is_entered_door = False
is_passed_scan = False
is_know_password = True
# and 比or的优先级高,or的结合性是左
print(is_has_key or is_entered_door and is_passed_scan or is_know_password)
# 在复杂表达式中使用小括号指定运算顺序
print((is_has_key or (is_entered_door and is_passed_scan)) or is_know_password)
#将复杂表达式拆分成几步来完成
step1 = is_entered_door and is_passed_scan
step2 = is_has_key or step1
step3 = step2 or is_know_password
print(step3)
04_10运算符的优先级和结合性
原创
©著作权归作者所有:来自51CTO博客作者运维湖司宁的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:04_09对象None
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Scala 运算符Scala
-
运算符的优先级与结合性总结
() [ ] -> . 自左向右! ~ ++ -- +- 自左向右 单目运算符* ...
运算符 算术运算符 位运算符 -
运算符和运算符优先级
运算符、运算符细节剖析
运算符 自增自减细节剖析 运算符优先级 -
C语言 — 运算符的优先级与结合性
最高级↓最低级
C语言 优先级 结合性 运算符 IT -
c/c++ 运算符的优先级和结合性(整理)
前段时间,给同学调试时出现了一个神奇的问题,于是,后来问题解决了,然后上网找资料,发现这文章,总结得不错。
c++ C++运算符 C++运算符优先级 C++运算符综合性 -
运算符_04_运算符优先级
优先级的概念:谁的优先级别高就先算谁 结合方向:规定了从哪个方 号 小于
优先级 比较运算符 取模 运算符 字符串