小编Hub*_*hen的帖子

为什么Python需要永远评估1**4**4**4**4?

我在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时间解释它在做什么吗?

对于我不理解的操作顺序,有什么不直观的东西吗?

python operators exponentiation

1
推荐指数
1
解决办法
148
查看次数

标签 统计

exponentiation ×1

operators ×1

python ×1