If you've noticed, python adds an L on to the end of large exponent results like this:
>>> 25 ** 25
88817841970012523233890533447265625L
After doing some tests, I found that any number below 10 doesn't include the L. For example:
>>> 9 ** 9
387420489
This was strange, so, why does this happen, is there any method to prevent it? All help is appreciated!
Python supports arbitrary precision integers, meaning you're able to represent larger numbers than a normal 32 or 64 bit integer type. The L
tells you when a literal is of this type and not a regular integer.
Note, that L
only shows up in the interpreter output, it's just signifying the type. If you print that result instead:
>>> print(25 ** 25)
88817841970012523233890533447265625
The L
doesn't get printed.
In Python 3, these types have been merged, so Python 3 outputs:
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