我在Python 2和Python 3中遇到了一个奇怪的问题.
>>> 1**4**4**4
1L
which seems fine, but when I do this:
>>> 1**4**4**4**4
Run Code Online (Sandbox Code Playgroud)
它淹没了CPU并且永远不会完成.
为什么?
我也运行这些来查看它是否与power函数,或**运算符,它似乎只是**运算符.
>>> (((((1**4)**4)**4)**4)**4)
1
>>> pow(pow(pow(pow(pow(pow(1,4),4),4),4),4),4)
1
>>> pow(pow(pow(pow(pow(pow(1.0,4),4),4),4),4),4)
1.0
>>> pow(pow(pow(pow(pow(pow(1L,4),4),4),4),4),4)
1L
>>> 1L**4**4**4
1L
Run Code Online (Sandbox Code Playgroud)
我也试过另一种语言,它似乎只是Python.
为什么不能在几微秒内评估这个?有人可以用CPU时间解释它在做什么吗?
对于我不理解的操作顺序,有什么不直观的东西吗?