2.5 运算顺序
当一个表达式中有多于一个运算符时,计算的顺序由运算顺序(order of operations) 决定。对于算数运算符,Python 遵循数学里的惯例。缩写 PEMDAS 有助于帮助大家记住这些规则:
• 括号 (Parentheses) 具有最高的优先级,并且可以强制表达式按你希望的顺序计算。因为在括号中的表达式首先被计算,那么 2 * (3−1) 的结果是 4,(1+1)**(5−2) 的结果是 8。你也可以用括号提高表达式的可读性,如写成 (minute * 100) / 60,即使这样并不改变运算的结果。
• 指数运算 (Exponentiation) 具有次高的优先级,因此 1 + 2**3 的结果是 9 而非 27, 2 * 3**2 的结果是 18 而非 36。 ,'2 '−'1 ' ' eggs '/' easy ' ' third '*'a␣charm ' , >>> first = ' throat ' >>> second = ' warbler ' >>> first + second throatwarbler
2.6 字符串运算 15
• 乘法 (Multiplication) 和除法 (Division) 有相同的优先级,比加法 (Addition) 和减法 (Subtraction) 高,加法和减法也具有相同的优先级。因此 2*3−1 是 5 而非 4, 6+4/2 是 8 而非 5。
• 具有相同优先级的运算符按照从左到右的顺序进行计算(除了指数运算)。因此 表达式degrees / 2 * pi 中,除法先运算,然后结果被乘以 pi。为了被 2π 除,你可以使用括号,或者写成degrees / 2 / pi。
我不会费力去记住这些运算符的优先级规则。如果看完表达式后分不出优先级,我会使 用括号使计算顺序变得更明显。