Введение
Рекурсия — это концепция, при которой функция вызывает саму себя в своем теле. В данной статье узнаем как работает рекурсия в 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 и как она работает. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂