Цілі літерали

Оновлено: 28.04.2023

Цілі літерали описуються такими лексичними визначеннями:

integer      ::=  decinteger | bininteger | octinteger | hexinteger
decinteger   ::=  nonzerodigit (["_"] digit)* | "0"+ (["_"] "0")*
bininteger   ::=  "0" ("b" | "B") (["_"] bindigit)+
octinteger   ::=  "0" ("o" | "O") (["_"] octdigit)+
hexinteger   ::=  "0" ("x" | "X") (["_"] hexdigit)+
nonzerodigit ::=  "1"..."9"
digit        ::=  "0"..."9"
bindigit     ::=  "0" | "1"
octdigit     ::=  "0"..."7"
hexdigit     ::=  digit | "a"..."f" | "A"..."F"

Немає обмежень щодо довжини цілочисельних літералів, крім того, що може зберігатися у доступній пам’яті.

Підкреслення ігноруються для визначення числового значення літералу. Їх можна використовувати для групування цифр для кращої читабельності. Одне підкреслення може бути між цифрами та після основних специфікаторів, таких як 0x.

Зауважте, що нулі на початку ненульового десяткового числа не допускаються. Це для усунення неоднозначності з вісімковими літералами у стилі C, які Python використовував до версії 3.0.

Деякі приклади цілих літералів:

7     2147483647                        0o177    0b100110111
3     79228162514264337593543950336     0o377    0xdeadbeef
      100_000_000_000                   0b_1110_0101