标签: python
在python 2.7中,当你评估2**2**2**2**0时得到16,而数学结果是2 ^ 2 ^ 2 ^ 2 ^ 0 = 2 ^(2 * 2 * 2 * 0)= 1。
2**2**2**2**0
显然,表达式的排序方式错误。我害怕犯错误。有没有办法改变这种行为?
编辑:问题是错误的,见下文。
答案 0 :(得分:3)
正如运算符优先权文档中明确指出的那样,指数从右到左进行评估。基本原理正是您在帖子中展示的内容:有一种更好的方法来编写从左到右的评估,因此程序员可能打算使用其他解释。