在计算机语言中被广泛的应用的Python运算符优先级,如果你在应用的过程中遇到困难时,比如,如果你有一个如2 + 3 * 4那样的表达式,是先做加法呢,还是先做乘法?下面的文章就是详细的介绍。
我们的中学数学告诉我们应当先做乘法——这意味着乘法运算符的优先级高于加法运算符。
下面这个表给出Python运算符优先级,从最低的优先级(最松散地结合)到最高的优先级(最紧密地结合)。这意味着在一个表达式中,Python运算符会首先计算表中较下面的运算符,然后在计算列在表上部的运算符。
运算符 描述
- lambda Lambda表达式
- or 布尔“或”
- and 布尔“与”
- not x 布尔“非”
- in,not in 成员测试
- is,is not 同一性测试
- <,<=,>,>=,!=,== 比较
- | 按位或
- ^ 按位异或
- & 按位与
- <<,>> 移位
- +,- 加法与减法
- *,/,% 乘法、除法与取余
- +x,-x 正负号
- ~x 按位翻转
- ** 指数
- x.attribute 属性参考
- x[index] 下标
- x[index:index] 寻址段
- f(arguments...) 函数调用
- (experession,...) 绑定或元组显示
- [expression,...] 列表显示
- {key:datum,...} 字典显示
- 'expression,...' 字符串转换
在表中列在同一行的运算符具有 相同优先级 。例如,+和-有相同的优先级。
计算顺序
默认地,运算符优先级表决定了哪个运算符在别的运算符之前计算。然而,如果你想要改变它们的计算顺序,你得使用圆括号。例如,你想要在一个表达式中让加法在乘法之前计算,那么你就得写成类似(2 + 3) * 4的样子。
结合规律由左向右结合,即具有相同Python运算符优先的运算符按照从左向右的顺序计算。例如,2 + 3 + 4被计算成(2 + 3) + 4。一些如赋值运算符那样的运算符是由右向左结合的,即a = b = c被处理为a = (b = c)。
【编辑推荐】