Рекурсия простыми словами

Рекурсия — это когда функция вызывает саму себя, чтобы разбить задачу на такие же меньшие.

Функция вызывает себя

Рекурсивная функция решает задачу, обращаясь к самой себе для меньшего случая. Так удобно описывать вещи, состоящие из таких же частей: обратный отсчёт, факториал, обход вложенных папок.

def отсчёт(n):
    if n == 0:
        return
    print(n)
    отсчёт(n - 1)

Условие выхода — обязательно

У рекурсии всегда должно быть условие выхода (базовый случай), при котором она перестаёт вызывать себя. Без него функция будет вызывать себя бесконечно, и программа упадёт с ошибкой глубины рекурсии — это как бесконечный цикл.

Рекурсия или цикл

Многие задачи можно решить и циклом, и рекурсией. Цикл обычно экономнее, а рекурсия нагляднее там, где задача естественно делится на подзадачи того же вида. Начинающим полезно понимать оба подхода.

Частые вопросы

Что такое базовый случай? Условие, при котором рекурсия останавливается и не вызывает себя дальше.

Почему возникает ошибка глубины рекурсии? Функция вызывает себя слишком много раз — обычно из-за отсутствующего или неверного условия выхода.

Начать игру бесплатно