Я пытаюсь понять концепцию рекурсии, и я просто не могу ее понять. Может кто-нибудь объяснить мне, почему он работает так, как он делает?Попытка понять функции рекурсии
Когда я вижу этот код, я ожидаю, что единственное, что нужно напечатать, - это 1, так как это, когда он, наконец, перестает называть себя, и это то, что он возвращает при последнем вызове.
def Fib(n):
if n == 1 or n == 2:
return 1
return Fib(n-1) + Fib(n-2)
print Fib(10)
Я также стараюсь делать это, и ожидаем, что печать 1, но только получить None
def foo(n):
if n == 1:
return n
else:
foo(n-1)
print foo(10)
EDIT: Я ценю помощь, которая была предоставлена. Я все еще просто не вижу связи, которой нужен мой мозг для AH-HA! Это, скорее всего, связано с ограничением моего опыта, а не с способностью сообщества объяснить мою проблему. Надеюсь, предоставленная информация сможет помочь мне в будущем, когда я вернусь к этому, а также к другим. Спасибо! Я бы отказался от голосов, но у меня нет необходимой репутации, извините!
«пытаясь понять функции рекурсии» - хватайте их за хвост;) – frasnian
Чтобы понять рекурсию, вы должны понимать рекурсию: P – M4rtini