Рекурсия в Python

Статьи

Введение

Рекурсия — это концепция, при которой функция вызывает саму себя в своем теле. В данной статье узнаем как работает рекурсия в Python и рассмотрим пример её использования.

Основы рекурсии

Рекурсивная функция в Python состоит из двух частей: базового случая и рекурсивного случая. Базовый случай — это условие, при котором рекурсия прекращается, а рекурсивный случай — это часть, где функция вызывает саму себя.

Пример рекурсии

Рассмотрим простой пример вычисления факториала числа с помощью рекурсии. Факториал числа n (обозначается n!) — это произведение всех положительных целых чисел от 1 до n.

Сначала создадим функцию с параметром n:

def factorial(n):

Внутри функции будет находиться условие, что если значение в переменной n равняется нулю, то функция вернёт единицу, иначе n будет помножена на рекурсивный вызов функции с переданным ей значением n-1:

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)

В этом примере базовым случаем является n == 0, а рекурсивным случаем — n * factorial(n-1).

Вызов рекурсивной функции

Теперь попробуем вызвать нашу функцию и получить факториал цифры 5:

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)


print(factorial(5))  # Выводит результат: 120

В результате вызова функции factorial(5) происходит следующий рекурсивный вызов:

factorial(5) -> 5 * factorial(4) -> 5 * 4 * factorial(3) -> 5 * 4 * 3 * factorial(2) -> 5 * 4 * 3 * 2 * factorial(1) -> 5 * 4 * 3 * 2 * 1

Таким образом, результатом вычисления факториала числа 5 является число 120.

Заключение

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

В ходе статьи мы с Вами узнали что такое рекурсия в Python и как она работает. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

Admin
Admin
IT Start