я столкнулся с любопытным вопросом как в Python 2 и Python 3.Почему Python берет навсегда оценку 1 ** 4 ** 4 ** 4 ** 4?
>>> 1**4**4**4
1L
which seems fine, but when I do this:
>>> 1**4**4**4**4
это поражающая процессор и никогда не заканчивается.
Почему?
Я также запустил их, чтобы увидеть, было ли это что-то с функцией власти или с оператором **, и это, кажется, просто оператор **.
>>> (((((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
Я также попробовал другой язык, и это похоже на Python.
Почему он не может оценить это в микросекундах? Может кто-нибудь объяснить, что он делает с процессорным временем?
Есть ли что-то неинтуитивное в отношении порядка операций, которые я не понимаю?
Еще одна вещь, которую следует отметить, заключается в том, что оптимизатор глазок будет предварительно вычислять самый правый '4 ** 4', поэтому сравнение между« 1 ** 4 ** 256' и «1 ** 4 ** 4 * * 256'. – roippi
А, ок. Я подумал, что это так. Спасибо всем. –