Python运算符优先级
Python运算符优先级教程
我们知道,在数学运算中,有 “先乘除后加减” 的运算规则,在我们程序语言中一样有运算符的优先级问题,来决定我们运算的顺序问题,这就是运算符的优先级。
即所谓运算符的优先级,指的是在含有多个运算符的式子中,到底应该先计算哪一个,后计算哪一个。
Python运算符运算规则
Python 中运算符的运算规则是,优先级高的运算符先执行,优先级低的运算符后执行,同一优先级的运算符按照从左到右的顺序进行。
需要注意的是,Python 语言中大部分运算符都是从左向右执行的,只有单目运算符、赋值运算符和三目运算符例外,它们是从右向左执行的。
Python运算符中,如果有小括号,即 ()
,则小括号的优先级最高。
Python运算符优先级表
运算符说明 | Python运算符 | 优先级 |
---|---|---|
小括号 | () | 20 |
索引运算符 | x[index] 或 x[index:index2[:index3]] | 18、19 |
属性访问 | x.attrbute | 17 |
乘方 | ** | 16 |
按位取反 | ~ | 15 |
符号运算符 | +(正号)或 -(负号) | 14 |
乘、除 | *、/、//、% | 13 |
加、减 | +、- | 12 |
位移 | >>、<< | 11 |
按位与 | & | 10 |
按位异或 | ^ | 9 |
按位或 | | | 8 |
比较运算符 | ==、!=、>、>=、<、<= | 7 |
is 运算符 | is、is not | 6 |
in 运算符 | in、not in | 5 |
逻辑非 | not | 4 |
逻辑与 | and | 3 |
逻辑或 | or | 2 |
案例
运算符优先级
乘除优先级比加减高
print("嗨客网(www.haicoder.net)")
# 乘除优先级比加减高
a = 1 + 2 * 3
b = 10 - 10 / 5
print('a =', a, 'b =', b)
程序运行后,控制台输出如下:
我们首先定义了 变量 a,其值为表达式 1+2*3
的结果,因为乘法的优先级高于加法,因此这里我们先计算乘法,再计算加法,所以最终结果为 1+6=7
。
接着我们定义变量 b,其值为表达式 10 - 10 / 5
的结果,因为除法的优先级高于减法,因此这里我们先计算除法,再计算减法,所以最终结果为 10-2=8
。
小括号改变运算符优先级
小括号的运算符优先级最高
print("嗨客网(www.haicoder.net)")
# 小括号的运算符优先级最高
a = (1 + 2) * 3
b = (10 - 2) / 4
print('a =', a, 'b =', b)
程序运行后,控制台输出如下:
我们首先定义了变量 a,其值为表达式 (1 + 2) * 3
的结果,因为小括号的运算符优先级最高,因此这里我们先计算小括号里面的加法,再计算乘法,所以最终结果为 3*3=9
。
接着我们定义变量 b,其值为表达式 (10 - 2) / 4
的结果,因为小括号的运算符优先级最高,因此这里我们先计算减法,再计算除法,所以最终结果为 8 / 4 = 2
。
Python运算符优先级总结
即所谓运算符的优先级,指的是在含有多个逻辑运算符的式子中,到底应该先计算哪一个,后计算哪一个。
Python 中运算符的运算规则是,优先级高的运算符先执行,优先级低的运算符后执行,同一优先级的运算符按照从左到右的顺序进行。
Python运算符中,如果有小括号,即 ()
,则小括号的优先级最高。