eli*_*337 3 python operators exponentiation python-3.x
我正在阅读Python入门教科书,发现以下内容:
同一行上的运算符具有相同的优先级,并且从左到右应用,除了幂运算从右到左应用。
我了解大多数情况,但我不明白为什么他们说从右到左应用了幂运算。他们也没有提供任何示例。另外,我可以问这样的一般性问题吗,还是只喜欢解决问题的问题?
该**运营商遵循正常的数学约定 ; 它是右关联的:
在通常的计算机科学术语中,数学上的幂是右联想的,这意味着x y z应该读作x (y z)而不是(x y)z。在充分小心地解决这个问题的BODMAS规则的说明中,规则是首先评估最高指数。
以及来自维基百科的操作顺序:
如果幂用堆叠符号表示,则通常的规则是从上向下进行操作,因为幂在数学上是右联想的。
So 2 ** 3 ** 4计算为2 ** (3 ** 4)(== 2417851639229258349412352)而不是(2 ** 3) ** 4(== 4096)。
这在编程语言中非常普遍。它被称为右关联性,虽然有有例外情况,用Excel和MATLAB是最明显的。