気付いた場合、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