Понимание рекурсии в Python
Я действительно пытаюсь понять, как работает рекурсия, и понять рекурсивные алгоритмы. Например, приведенный ниже код возвращает 120, когда я ввожу 5, извините за мое невежество, и я просто не понимаю, почему?
def fact(n):
if n == 0:
return 1
else:
return n * fact(n-1)
answer = int (raw_input('Enter some number: '))
print fact(answer)