Основы Python для программируемых сетей и систем — рекурсивные функции, курсы DevOps / DevNet скачать Ташкент

Основы Python для программируемых сетей и систем — рекурсивные функции, курсы DevOps / DevNet скачать Ташкент

Статьи

Наши постоянные читатели уже познакомились с таким инструментом разработчика на Python как функции. Мы рассказали о том, как объявлять и использовать функции в коде. А также — как добавлять в них обязательные и опциональные аргументы. Также мы рассмотрели функция с функциями в теле. Сегодня мы расскажем вам о рекурсивных функциях в Python, такие знания входят в курсы DevOps / DevNet скачать Ташкент. И помогут вам стать айтишником в Узбекистане до конца 2023 года.

Что такое рекурсия, курсы DevOps / DevNet скачать Ташкент

Прежде всего остального, давайте разберемся в том, что же собой представляет рекурсия. Рекурсия в программировании — это включение в тело объекта (в нашем случае — в функцию) операции вызова самой функции. То есть, подпрограмма возвращает в качестве результата работы новую версию себя, выполненную с новыми данными. Как правило, они являются результатом обработки первоначальных аргументов, с которыми была вызвана функция. Конечно же, звучит немного сложно, но лучше разобраться в этом вам помогут DevOps / DevNet курсы torrent Ташкент.

Стоит отметить, что рекурсия невероятно популярна в программировании. И как явление даже породила огромное количество мемов в массовой культуре. При этом с ее помощью можно очень лаконично решать довольно сложные задачи. Решение которых без использования рекурсии потребует значительной изобретательности. А также — существенных затрат времени и сил.

При этом рекурсия, как и любой мощный инструмент, таит в себе угрозу. Прежде всего, ее следует использовать с осторожностью по следующим причинам:

  • код программы становится менее понятным, теряется наглядность;
  • велика вероятность получить неожиданный нежелательный результат;
  • затраты ресурсов компьютера при решении задач рекурсивным методом растут в геометрической прогрессии.

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

Как использовать рекурсию в функциях в Python

Теперь давайте разберемся в том, как использовать рекурсию в функциях. В языке программирования Python для этой цели следует указать после оператора return название функции. В качестве нового аргумента можно использовать результат обработки аргументов, предоставленных подпрограмме на предыдущей итерации. Детальнее об этом вам помогут узнать лучшие курсы DevOps / DevNet Ташкент.

Классический пример задачи в программировании, решаемой рекурсивно — вычисление элементов ряда Фибоначчи. Напомним, что числами Фибоначчи являются такие числа, в ряду которых каждое новое число равняется сумме двух предыдущих. При этом вычислить N-ный элемент этого ряда можно двумя способами:

  • с помощью цикла (while или for);
  • рекурсивной функцией.

При этом второй вариант — самый простой, если оценивать сложность по количеству строк кода. Определим функцию — def fib(n), где аргумент n представляет собой порядковый номер числа в ряду Фибоначчи. Первая строка нашей подпрограммы будет включать в себя условный оператор if, проверяющий, является ли 1 или 2 — if n in (1, 2). Если да 1 — функция должна вернуть 1 в качестве значения, так как первые два числа в этому ряду равны единице.

Далее идет вычисление N-ного элемента ряда для N > 2. Для этого указываем после оператора return сумму результатов выполнения функций с аргументами n – 1 и n – 2. А именно — fib(n – 1) + fib(n – 2). Попробуйте вызвать такую функцию с разными значениями n, чтобы увидеть результат вычислений. И напишите о нем в комментариях. Узнать больше вам помогут курсы DevOps / DevNet Ташкент.

Команда SEDICOMM University: Академия Cisco, Linux Professional Institute, Python Institute.