Рекурсия простыми словами
Рекурсия — это когда функция вызывает саму себя, чтобы разбить задачу на такие же меньшие.
Функция вызывает себя
Рекурсивная функция решает задачу, обращаясь к самой себе для меньшего случая. Так удобно описывать вещи, состоящие из таких же частей: обратный отсчёт, факториал, обход вложенных папок.
def отсчёт(n):
if n == 0:
return
print(n)
отсчёт(n - 1)
Условие выхода — обязательно
У рекурсии всегда должно быть условие выхода (базовый случай), при котором она перестаёт вызывать себя. Без него функция будет вызывать себя бесконечно, и программа упадёт с ошибкой глубины рекурсии — это как бесконечный цикл.
Рекурсия или цикл
Многие задачи можно решить и циклом, и рекурсией. Цикл обычно экономнее, а рекурсия нагляднее там, где задача естественно делится на подзадачи того же вида. Начинающим полезно понимать оба подхода.
Частые вопросы
Что такое базовый случай? Условие, при котором рекурсия останавливается и не вызывает себя дальше.
Почему возникает ошибка глубины рекурсии? Функция вызывает себя слишком много раз — обычно из-за отсутствующего или неверного условия выхода.
Начать игру бесплатно