Я написал Python функцию для вычисления факториала числа, например, так:
def fact(n):
return {0: 1}.get(n, n * fact(n-1))
Я был удивлен, увидев, что это приводит к бесконечной рекурсии, даже для fact(0)
. Затем я добавил утверждение, вот так:
def fact(n):
assert n >= 0
return {0: 1}.get(n, n * fact(n-1))
Но на этот раз AssertionError повышается, что означает n
становится отрицательным. Я не понимаю этого. Я посмотрел это на inte rnet. Но, к сожалению, не смог найти никакого ответа. Может кто-нибудь объяснить мне, что здесь происходит?