Learn_Python_运算符的优先级03

什么是运算符的优先级

每个运算符都有固定的优先级

当表达式中包含优先级不同的运算符时,高优先级的运算符先参与运算。

比如:运算符 * 和 / 的优先级比运算符 + 和 - 的优先级高,正所谓“先乘除,后加减”

print(2 + 3 + 4)
9

以下表格列出了从最高到最低优先级的所有运算符:

运算符描述
**指数(最高优先级)
~+ -按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % //乘,除,取模和取整除
+ -加法减法
>> <<右移,左移运算符
&位‘AND’
^ |位运算符
<= < > >=比较运算符
< > == !=等于运算符
= %= /= //= -= += *= **=赋值运算符
is is not身份运算符
in not in成员运算符
not and or逻辑运算符

什么是运算符的结合性

每个运算符都有固定的结合性

当表达式包含优先级相同的运算符时,结合性定义了哪个运算符先参与运算



如果运算符的结合性为 左,那么左边的运算符先参与运算

比如: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)
True
True
step1 = is_entered_door and is_passed_scan
step2 = is_has_key or step1
step3 = step2 or is_know_password
print(step3)
True

学习参考:

  1. 图解Python: http://e-learning.51cto.com/course/12803
  2. Python菜鸟教程:https://www.runoob.com/python/python-tutorial.html
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZPILOTE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值