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Сообщить о неточности