为什么 Python 对大指数结果添加 'L' ?

36 投票
1 回答
67555 浏览
提问于 2025-04-18 07:00

如果你注意到了,Python在处理很大的指数结果时,会在结果的末尾加一个L,就像这样:

>>> 25 ** 25
88817841970012523233890533447265625L

经过一些测试,我发现任何小于10的数字都不会加L。比如:

>>> 9 ** 9
387420489

这就很奇怪了,为什么会这样呢?有没有什么方法可以避免这种情况?任何帮助都很感谢!

1 个回答

48

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

撰写回答