Рекурсия в Python
По многочисленным просьбам подписчиков поговорим о рекурсивных функциях, как они работают, как их правильно написать и каких ошибок избегать.
Рекурсивная функция всегда представлена комбинацией основного случая (base case) и рекурсивного вызова.
Предназначение рекурсии - разбивать/уменьшать поступившие данные до тех пор, пока не будет выполнено условие выхода.
В Python рекурсия ограничена глубиной стека (по умолчанию - 1000) и не оптимизирована
Частые ошибки:
- нет условия выхода (base case)
- нет return в одной из веток
- нет уменьшения данных
Читать:
Mark Lutz, fifth edition "Learning Python", Chapter 19, Advanced Function Topics
https://docs.python.org/3/library/sys.html#sys.setrecursionlimit
https://docs.python.org/3/library/exceptions.html#RecursionError
recursion
python
recursion limit
base case
рекурсия python
рекурсия в питоне