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

125 прочитали

В общем-то рекурсия работает примерно одинаково во всех языках. Но я приведу пример на Python.

Функция внутри себя может вызывать другую функцию. Это обычное дело и наверно об этом знают все. Необычным для новичков может оказаться то, что функция может вызывать не только другие функции, но и саму себя. Это и называется рекурсией (от латинского recursio - возвращение).

Пример на Python:

В общем-то рекурсия работает примерно одинаково во всех языках. Но я приведу пример на Python. Функция внутри себя может вызывать другую функцию. Это обычное дело и наверно об этом знают все.

Здесь если значение переменной х равно нулю или меньше нуля, то мы выводим сообщение и завершаем процесс. Иначе мы выводим значение переменной х и функция вызывает сама себя, передавая в качестве параметра значение х-1. И так будет до тех пор, пока это значение не сравняется с нулём.

Если как в нашем примере передать в функцию число 3, то вывод на экран будет таким:

3
2
1
Всё кончено!

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

Функция, которая вызывает сама себя, называется рекурсивной.

Этот пример совершенно бесполезен. Как и большинство примеров, он служит для понимания сути. То же самое можно было бы сделать и более простым способом, например, в цикле. Однако в некоторых случаях рекурсия является наилучшим или даже единственным решением. Самый, наверное, известный пример - это вычисление факториала (хотя его можно вычислить и без рекурсии):

В общем-то рекурсия работает примерно одинаково во всех языках. Но я приведу пример на Python. Функция внутри себя может вызывать другую функцию. Это обычное дело и наверно об этом знают все.-2

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

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.