2.4.4 整数および長整数リテラル

整数および長整数リテラルは以下の字句定義で記述されます:

longinteger ::= integer ("l" | "L")
integer ::= decimalinteger | octinteger | hexinteger
decimalinteger ::= nonzerodigit digit* | "0"
octinteger ::= "0" octdigit+
hexinteger ::= "0" ("x" | "X") hexdigit+
nonzerodigit ::= "1"..."9"
octdigit ::= "0"..."7"
hexdigit ::= digit | "a"..."f" | "A"..."F"
Download entire grammar as text.

長整数を表す末尾の文字は小文字の "l" でも大文字の "L" でもかまいませんが、"l" は "1" に良く似ているので、 常に "L" を使うよう強く勧めます。

整数で表現できる最大の値よりも大きい整数のリテラル (例えば 32-bit 整数を使っている場合には 2147483647) は、 長整数として表現できる値であれば受理されます。 2.1値がメモリ上に収まるかどうかという問題を除けば、長整数リテラルには値域の 制限がありません。

整数リテラル (最初の行) と長整数リテラル (二行目および三行目) の例を 以下に示します:

7     2147483647                        0177
3L    79228162514264337593543950336L    0377L   0x100000000L
      79228162514264337593543950336             0xdeadbeef



脚注

... 長整数として表現できる値であれば受理されます。2.1
バージョン 2.4 以前の Python では, 8 進および 16 進のリテラル のうち,通常の整数型として表現可能な値より大きく,かつ符号無しの 32-bit (32-bit 演算を使う計算機の場合) 整数で表現できる最大値,すなわち 4294967296 よりも小さな数は,リテラルを符号無し整数として表現した値から 4294967296 を引いて得られる負の整数として扱っていました.
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。