嵌套功率操作数的Python评估顺序

时间:2017-03-18 01:14:18

标签: python

在python 2.7中,当你评估2**2**2**2**0时得到16,而数学结果是2 ^ 2 ^ 2 ^ 2 ^ 0 = 2 ^(2 * 2 * 2 * 0)= 1。

显然,表达式的排序方式错误。我害怕犯错误。有没有办法改变这种行为?

编辑:问题是错误的,见下文。

1 个答案:

答案 0 :(得分:3)

正如运算符优先权文档中明确指出的那样,指数从右到左进行评估。基本原理正是您在帖子中展示的内容:有一种更好的方法来编写从左到右的评估,因此程序员可能打算使用其他解释。