为什么求幂从右到左?

eli*_*337 3 python operators exponentiation python-3.x

我正在阅读Python入门教科书,发现以下内容:

同一行上的运算符具有相同的优先级,并且从左到右应用,除了幂运算从右到左应用。

我了解大多数情况,但我不明白为什么他们说从右到左应用了幂运算。他们也没有提供任何示例。另外,我可以问这样的一般性问题吗,还是只喜欢解决问题的问题?

Mar*_*ers 7

**运营商遵循正常的数学约定 ; 它是右关联的:

在通常的计算机科学术语中,数学上的幂是右联想的,这意味着x y z应该读作x (y z而不是(x yz。在充分小心地解决这个问题的BODMAS规则的说明中,规则是首先评估最高指数。

以及来自维基百科的操作顺序

如果幂用堆叠符号表示,则通常的规则是从上向下进行操作,因为幂在数学上是右联想的。

So 2 ** 3 ** 4计算为2 ** (3 ** 4)(== 2417851639229258349412352)而不是(2 ** 3) ** 4(== 4096)。

这在编程语言中非常普遍。它被称为右关联性,虽然有例外情况,用Excel和MATLAB是最明显的。