Python Glossary English

Python 3.11+sysфункция

sys.get_int_max_str_digits()

интерпретатор

Возвращает предел числа цифр при переводе int в str и обратно; по умолчанию 4300. Больше — ValueError вместо результата.

Синтаксис

sys.get_int_max_str_digits()

Частая неожиданность в задачах на длинную арифметику: сам int растёт без границ, а print(2**20000) падает с ValueError «Exceeds the limit (4300 digits)». Ограничение появилось как защита от DoS: перевод огромного числа в строку занимает квадратичное время. 0 означает «без предела». Переводы в hex(), bin() и oct() под предел не попадают.

Примеры

import sys
print(sys.get_int_max_str_digits())  # → 4300
n = 2 ** 20000
print(n.bit_length())  # → 20001
try:
    print(n)
except ValueError as e:
    print(type(e).__name__)  # → ValueError
print(len(hex(n)))  # → 5003

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности