表达式中各个运算块的运算顺序

来源:互联网 发布:淘宝回购率高的产品 编辑:程序博客网 时间:2024/06/05 18:12

转载请注明出处: http://blog.csdn.net/SamoyedSun/article/details/45953885


当一个表达式中有多于一个运算符时,计算的顺序依赖运算符的优先级规则(rules of precedence)。对于算术运算,Python遵循的是数学的惯例。缩写PEMDAS有助于记住这一规则:


括号(Parentheses)具有最高的优先级,并且可以被用于强制表达式按你需要的顺序计算。既然在括号中的表达式优先计算,那么 2 * (3-1)是4,(1+1)*(5-2)就是8 。你也可以用括号使一个表达式更容易读,如(minute 100) / 60, 即使它不能改变运算的结果,但是通常这样做让人看起来更容易理解。


指数运算(Exponentiation)具有第二高的优先级,因此2**1+1是3而不是4,3*1**3结果是3而不是27。
乘法(Multiplication)和除法(Division)有相同的优先级,比加法(Addition)和减法(Subtraction)高,同样加法和减法也具有相同的优先级。因此2*3-1 结果是5而不是4, 6+4/2结果是8而不是5.


*具有相同优先级的运算符按照从左到右的顺序进行计算(除了指数运算)。因此表达式 degrees /2 *pi 中,除法先运算,然后结果乘以pi。 如果需要degrees被2π除,你可以使用括号:degrees/(2*pi),或者写成 degrees / 2 / pi。
我这人记忆不寻常的差,所以记不住其它运算符的优先级规则。所以如果通过观察表达式不能表示清楚,我会使用括号使其变得更明了。*

0 0