第7章 运算符-7.8 运算符的优先级和结合性

张开发
2026/5/3 22:26:08 15 分钟阅读
第7章 运算符-7.8 运算符的优先级和结合性
运算符的优先级指的是当多个运算符同时出现在一个表达式中时先执行哪个运算符。虽然Python的运算符存在优先级的关系但仍然不推荐过度依赖运算符的优先级这会导致程序的可读性降低。因此建议读者2点第一不要把一个表达式写得过于复杂如果一个表达式过于复杂可以尝试把它拆分来书写第二不要过多地依赖运算符的优先级来控制表达式的执行顺序这样可读性太差应尽量使用小括号来控制表达式的执行顺序。运算符的结合性指的是当一个表达式中出现多个优先级相同的运算符时先执行哪个运算符先执行左边的叫左结合性先执行右边的叫右结合性。例如对于表达式“100/25*16”“/”和“*”的优先级相同这时候就不能只依赖运算符优先级还要参考运算符的结合性“/”和“*”都具有左结合性因此先执行左边的除法再执行右边的乘法最终结果为64。Python中大部分运算符都具有左结合性也就是从左到右执行只有单目运算符例如逻辑非运算符等、赋值运算符和三目运算符例外它们具有右结合性也就是从右向左执行。运算符的优先级和结合性如表7-8所示该表中的运算符优先级按由高至低排列。表7-8 运算符优先级和结合性运算符描述结合性()小括号。无**次幂。右~按位取反。右*、/、//、%乘、除、整除、取模。左、-加、减。左、左移、右移。左按位与。右^按位异或。左|按位或。左、!、、、、所有比较运算符。左is、is not所有身份运算符。左in、not in所有成员运算符。左not逻辑非。右and逻辑与。左or逻辑或。左综上所述当一个表达式中出现多个运算符时Python会先比较各个运算符的优先级按照优先级从高到低的顺序依次执行当遇到优先级相同的运算符时再根据结合性决定先执行哪个运算符如果是左结合性就先执行左边的运算符如果是右结合性就先执行右边的运算符。

更多文章