为什么python添加了一个';L';在大指数结果的末尾?

为什么python添加了一个';L';在大指数结果的末尾?,python,python-2.x,exponent,Python,Python 2.x,Exponent,如果您已经注意到,python在大指数结果的末尾添加了一个L,如下所示: >>> 25 ** 25 88817841970012523233890533447265625L 在做了一些测试之后,我发现任何低于10的数字都不包括L。例如: >>> 9 ** 9 387420489 这很奇怪,那么,为什么会发生这种情况,有什么方法可以防止它呢?感谢您的帮助 Python支持任意精度整数,这意味着您可以表示比普通32位或64位整数类型更大的数字。L告诉您什么时候

如果您已经注意到,python在大指数结果的末尾添加了一个L,如下所示:

>>> 25 ** 25
88817841970012523233890533447265625L
在做了一些测试之后,我发现任何低于10的数字都不包括L。例如:

>>> 9 ** 9
387420489

这很奇怪,那么,为什么会发生这种情况,有什么方法可以防止它呢?感谢您的帮助

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

因为在C级,我相信整数的类型是
long
@Alex_Thornton你说的long是什么意思?哎呀,失火了,这不是最好的欺骗。我的锤子浪费在那里了。你看数字的表示。数字本身没有尾随的
L
@AlexThornton:我想看到你把
88817841970012523233890533447265625
放进一个C长…我知道这是一个小问题,但因为
print(25**25)
显然是Python 3,所以
L
无论如何都不会显示出来,但确实如此。@wnnmaw为什么
print(25**25)
显然是Python3?@user189,因为我不知道
print(x)
是有效的Python2:P,我认为这意味着它将被视为函数,因此Python3