我正在玩
python命令行和**运算符,据我所知,它执行幂函数.所以2 ** 3应该是(并且是)8因为2 * 2 * 2 = 8.
有人能解释我发现的行为吗?我没有看到任何方法将操作与括号分组以实际获得65536的结果,就像在这里获得的那样.
>>> 2 ** 2 ** 2 16 >>> 2 ** 2 ** 2 ** 2 65536 >>> (2 ** 2 ** 2) ** 2 256
解决方法
2** (2**(2**2))
从http://docs.python.org/reference/expressions.html
同一个框组中的操作符从左到右(除了比较,包括测试,它们都具有相同的优先级和从左到右的链 – 参见比较 – 和取幂,从右到左分组).