Подтвердить что ты не робот

Почему python добавляет "L" в конец результата больших экспонентов?

Если вы заметили, python добавляет L к концу больших результатов экспоненты, например:

>>> 25 ** 25
88817841970012523233890533447265625L

После некоторых тестов я обнаружил, что любое число ниже 10 не включает L. Например:

>>> 9 ** 9
387420489

Это было странно, поэтому, почему это происходит, есть ли какой-нибудь способ его предотвратить? Вся помощь приветствуется!

4b9b3361

Ответ 1

Python поддерживает произвольные целые числа точности, то есть вы можете представлять большие числа, чем обычный 32 или 64-битный целочисленный тип. L сообщает вам, когда литерал имеет этот тип, а не регулярное целое число.

Обратите внимание, что L отображается только на выходе интерпретатора, это просто означает тип. Если вы напечатаете этот результат вместо этого:

>>> print(25 ** 25)
88817841970012523233890533447265625

L не печатается.

В Python 3 эти типы были объединены, поэтому выходы Python 3:

Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 24 ** 24
1333735776850284124449081472843776