Как работают рекурсии в python? - Общение Python мододелов

Вопрос Как работают рекурсии в python?

Регистрация
14 Дек 2013
Сообщения
99
Репутация
-10
Спасибо
0
Монет
0
Объясните пожалуйста на каком-то примере, как оно работает. Строится какое-то древо возвратов, а затем оно все последовательно возвращается... не могу понять.
 
Регистрация
12 Окт 2013
Сообщения
105
Репутация
0
Спасибо
0
Монет
0
болью болью болью болью. ну можно на примере чисел фибоначчи понять
 
Регистрация
12 Май 2013
Сообщения
88
Репутация
0
Спасибо
0
Монет
0
def factorial(num: int) -> int:
if num == 0 or num == 1:
return 1
return num * factorial(num - 1)
 
Регистрация
15 Сен 2013
Сообщения
80
Репутация
0
Спасибо
0
Монет
0
Все говорят "объяснить", а ты возьми и попроси "объяснить"
 
Регистрация
25 Апр 2013
Сообщения
81
Репутация
0
Спасибо
0
Монет
0
Рекурсии везде плохо работают.
Дерево для хранения возвратов не нужно, возврат происходит в одно и то же место. Для такого используются структуры типа стек. В нормальных языках вообще используется их аппаратная реализация.
Если есть желание разобраться, как именно оно работает, можно заглянуть в потроха питона, они открыты, правда, ничего интересного там нет.
 
Регистрация
20 Авг 2013
Сообщения
90
Репутация
0
Спасибо
0
Монет
0
def a(b):
if b % 2 == 0:
return b
return a(b**2)
 
Сверху Снизу