Что такое рекурсия и как она работает в языке Python

автор рубрика
Что такое рекурсия и как она работает в языке Python

В этой статье поговорим про особенности работы механизма рекурсии в популярном языке программирования Python. Читайте далее про особенности работы с рекурсией в функциях языка Python, благодаря которой в Python существует возможность обходить структуры, имеющие произвольные и непредсказуемые формы и глубины.

Что представляет собой рекурсия в языке Python

Рекурсия — это описание (определение) какого-либо объекта или процесса внутри этого самого объекта или процесса (структуры). В Python механизм рекурсии очень распространен в функциях. Функциями называются участки кода, которые изолированы от остального кода программы. Их выполнение происходит только в том случае, если они вызываются. Все функции обладают одним общим свойством: они могут принимать параметры (ноль, один или несколько), а также возвращать значения (но это не всегда). Функцию, в которой используется механизм рекурсии, называют рекурсивной функцией. Отличительной особенностью рекурсивных функций является то, что в своей конструкции они содержат собственный вызов, то есть вызывают сами себя. Рекурсию также принято считать альтернативой несложным циклам и итерациям для того, чтобы повысить производительность программы путем более быстрого выполнения. Хотя также стоит отметить, что рекурсия не всегда применима в сложных циклических конструкциях (например, когда необходимо использовать вложенные циклы).

Как работает рекурсия: несколько практических примеров

В качестве примера рассмотрим механизм рекурсии на основе функции. Для того, чтобы объявить собственную функцию в Python, применяется специальное зарезервированное слово def. Следующий код на языке Python отвечает за объявление рекурсивной функции, которая отвечает за нахождение суммы элементов списка:

def mysum (L) :
if not L:
return 0
else:
return L[0] + mysum(L[1:])

Для того, чтобы вызвать объявленную функцию, необходимо указать ее имя и входящий параметр:

mysum([1, 2, 3, 4, 5])##15

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

def mysum(L) :
print (L) # Вывод уровней рекурсии
if not L: # На каждом уровне L становится короче
return 0
else:
return L[0] + mysum(L[1:])

 

python машинное обучение курс, машинное обучение python курс, предобработка данных python, нейронные сети python, обработка естественного языка python, machine learning курсы, задача классификации python
Результат выполнения суммы и уровни рекурсии

Таким образом, благодаря поддержке механизма рекурсии, язык Python обеспечивает разработчика возможностью значительно повышать производительность приложений и экономии времени. Это делает Python универсальным и надежным средством для работы с производительными приложениями, а также с Big Data обработкой.

Графовые алгоритмы. Бизнес-приложения

Код курса
GRAF
Ближайшая дата курса
25 июля, 2022
Длительность обучения
24 ак.часов
Стоимость обучения
60 000 руб.

Освоить Python на профессиональном уровне в разработчика различных приложений и прочих прикладных областях Data Science вы сможете на практических курсах по Python в нашем лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов в Москве:

  1. Лутц, Марк. Изучаем Python, том 1, 5-е изд.: Пер. с англ. — СПб.: ООО “Диалектика”, 2019. — 832 с. : ил. — Парад, тит. англ.
Комментировать