为什么 Python 对大指数结果添加 'L' ?
如果你注意到了,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