python: ограничить размер целых чисел
В питоне целые числа имеют неограниченный размер (ограничено лишь памятью)
А можно ли ограничить размер целых чисел, чтобы скажем 100**100 или math.factorial(100) уже не вычислялось, а выпадало бы исключение?
Ответы (1 шт):
Автор решения: Amgarak
→ Ссылка
Можно попробовать использовать декоратор:
def big_number_decorator(func):
def wrapper(n):
if n > 100:
raise ValueError(f"Число {n} превышает максимальное значение!")
return func(n)
return wrapper
@big_number_decorator
def big_number(n):
return n
try:
big_number(100)
except ValueError as e:
print(e)
Теперь при вызове функции, сперва отработает декоратор, проверит что число не больше нужного и только потом вызовет вашу функцию или выбьет исключение и вычисление не произойдёт.