当前位置:首页 > Python > 正文

Python运算符优先级完全指南 - 从入门到精通

Python运算符优先级完全指南

掌握Python运算符优先级,写出更高效、更可靠的代码

什么是运算符优先级?

运算符优先级决定了表达式中运算的执行顺序。当表达式包含多个运算符时,优先级高的运算符会先于优先级低的运算符进行计算。

例如,在表达式 2 + 3 * 4 中,乘法运算符(*)的优先级高于加法运算符(+),因此先计算 3 * 4 得到12,然后再计算 2 + 12 得到14。

Python运算符优先级表

优先级 运算符 描述 示例
最高 () 括号 (3+4)*2 → 14
** 指数 2**3 → 8
~ + - 按位取反、正负号 -5 + 3 → -2
* / // % 乘、除、整除、取模 10 % 3 → 1
+ - 加、减 5 - 2 → 3
<< >> 位左移、位右移 8 >> 1 → 4
& 按位与 5 & 3 → 1
^ | 按位异或、按位或 5 ^ 3 → 6
最低 == != > >= < <= 比较运算符 5 == 5 → True
not and or 逻辑运算符 True and False → False

记住:括号()拥有最高优先级,可以显式改变运算顺序。当不确定优先级时,使用括号可以使代码更清晰易读。

运算符优先级实例分析

示例1:算术运算符

result = 5 + 3 * 2 ** 2

计算步骤:

  1. 指数运算:2 ** 2 = 4
  2. 乘法运算:3 * 4 = 12
  3. 加法运算:5 + 12 = 17

结果:17

示例2:混合运算符

result = 15 > 10 and 5 + 3 * 2 == 11

计算步骤:

  1. 乘法:3 * 2 = 6
  2. 加法:5 + 6 = 11
  3. 比较:15 > 10 → True
  4. 比较:11 == 11 → True
  5. 逻辑与:True and True → True

结果:True

使用括号改变优先级

括号可以显式改变运算顺序,使表达式更清晰:

示例1:改变算术优先级

无括号:8 / 2 * 4 → 16.0

有括号:8 / (2 * 4) → 1.0

解释:括号强制先进行乘法运算

示例2:逻辑表达式

result = (5 > 3) and (10 < 20 or 5 == 5)

解释:括号明确指定了逻辑运算的顺序

结果:True

最佳实践建议

  • 当表达式包含3个或更多运算符时,使用括号
  • 混合使用算术和逻辑运算符时,使用括号
  • 当表达式含义不够清晰时,使用括号增强可读性
  • 即使知道优先级,使用括号也能防止未来修改时引入错误

运算符优先级练习

尝试计算以下表达式的值,然后点击查看答案:

expression1 = 2 * 3 ** 2 + 5

expression2 = 10 + 5 * 2 == 20 and 7 % 3 > 1

expression3 = (10 + 5) * 2 == 30 or 8 / 2 ** 2 < 3

掌握Python运算符优先级是编写高质量代码的基础。建议多加练习,熟悉各种运算符的使用场景和优先级顺序。

发表评论