Python的幂运算符与右边关联的理由是什么?
我正在编写代码以解析数学表达式字符串,并注意到在Python中对链式幂运算符进行求值的顺序与Excel中的顺序不同。 从http://docs.python.org/reference/expressions.html: “因此,在无括号的幂和一元运算符序列中,运算符是从右到左求值的(这不限制操作数的求值顺序):-1 * 2得出-1。” * 这意味着,在Python中: 2**2**3被评估为2**(2**3) = 2**8 = 256 在Excel中,它的工作方式与之相反:2^2^3被评估为(2^2)^3 = 4^3 = 64 我现在必须为自己的解析器选择一个实现。Excel顺序更容易实现,因为它反映了乘法的求值顺序。 我问办公室周围的一些人,他们对评估的直觉是什么2^2^3,得到的回应不一。 有人知道有任何有利于Python实现的理由或考虑吗?如果您没有答案,请评论您从直觉中获得的结果- 64或256?