Python Glossary English

Python 3.11+sysфункция

sys.set_int_max_str_digits()

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

Меняет предел числа цифр при переводе int в str и обратно (по умолчанию 4300); 0 снимает его. Нужна в задачах с очень длинными числами.

Синтаксис

sys.set_int_max_str_digits(maxdigits)

Если решение печатает огромный факториал или число Фибоначчи, первой строкой ставят sys.set_int_max_str_digits(0) — иначе ValueError на print или на int(input()). Значения от 1 до 639 запрещены: допустимы 0 или от 640. Предел есть и в старых ветках (с 3.10.7, 3.9.14, 3.8.14 — заплатка безопасности), а снаружи его задают PYTHONINTMAXSTRDIGITS и -X int_max_str_digits.

Примеры

import math, sys
sys.set_int_max_str_digits(0)
s = str(math.factorial(2000))
print(len(s))  # → 5736
# Python 3.14+
import sys
try:
    sys.set_int_max_str_digits(100)
except ValueError as e:
    print(e)  # → maxdigits must be >= 640 or 0 for unlimited
import sys
sys.set_int_max_str_digits(5000)
print(len(str(10 ** 4999)))  # → 5000

См. также

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

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