品易云推流 关闭
文章详情页
文章 > Python基础教程 > Python运算符优先级

Python运算符优先级

头像

silencement

2019-07-03 13:31:263903浏览 · 0收藏 · 0评论

所有的数学运算都是从左向右进行的,Python 语言中的大部分运算符也是从左向右结合的,只有单目运算符、赋值运算符和三目运算符例外,它们是从右向左结合的,也就是说,它们是从右向左运算的。

乘法和加法是两个可结合的运算符,也就是说,这两个运算符左右两边的操作数可以互换位置而不会影响结果。

运算符有不同的优先级,所谓优先级就是在表达式运算中的运算顺序。下表中列出了包括分隔符在内的所有运算符的优先级顺序。

 运算符的优先级
运算符说明Python运算符优先级
索引运算符x[index]或x[index:index2[:index3]]18、19
属性访问x.attrbute 17
乘方**16
按位取反~15
符号运算符+或-14
乘、除*、/、//、%13
加、减+、-12
位移>>、<<11
按位与&10
按位异或^9
按位或|8
比较运算符==、!=、>、>=、<、<= 7
is运算符is、is not6
in运算符in、not in5
逻辑非not4
逻辑与and3
逻辑或or2

根据表中运算符的优先级,我们分析 4+4<<2 语句的执行结果。程序先执行 4+4 得到结果 8,再执行 8<<2 得到 32。如果使用“()”就可以改变程序的执行顺序,比如 4+(4<<2),则先执行 4<<2 得到结果16,再执行 4+16 得到 20。

虽然 Python 运算符存在优先级的关系,但并不推荐过度依赖运算符的优先级,因为这会导致程序的可读性降低。因此,在这里要提醒读者:

不要把一个表达式写得过于复杂,如果一个表达式过于复杂,则把它分成几步来完成。

不要过多地依赖运算符的优先级来控制表达式的执行顺序,这样可读性太差,应尽量使用“()”来控制表达式的执行顺序。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

底部广告图