Рекурсия в Python
По многочисленным просьбам подписчиков поговорим о рекурсивных функциях, как они работают, как их правильно написать и каких ошибок избегать.
Рекурсивная функция всегда представлена комбинацией основного случая (base case) и рекурсивного вызова.
Предназначение рекурсии - разбивать/уменьшать поступившие данные до тех пор, пока не будет выполнено условие выхода.
В Python рекурсия ограничена глубиной стека (по умолчанию - 1000) и не оптимизирована
Частые ошибки:
- нет условия выхода (base case)
- нет return в одной из веток
- нет уменьшения данных
Читать:
Mark Lutz, fifth edition "Learning Python", Chapter 19, Advanced Function Topics
docs.python.org/3/library/sys...
docs.python.org/3/library/exc...
Присоединяйтесь к помощи каналу, будет интересно)
✔️Бусти boosty.to/python_russian/donate
✔️Юмани 410011506612886
Будь первым везде и всегда, включай уведомления о новых выпусках 🔔
#Python #PythonRussian #Recursion
Пікірлер: 46
друзья, все еще кто-то кое-где у нас порой смотрит видео, но не подписывается на канал, призываю исправлять это упущение по мере сил.
@barma1309
2 ай бұрын
Вот позорники!!!
@nicsolov9821
2 ай бұрын
Без вопросов!
@user-ko8kz2zk2u
2 ай бұрын
Очень жду видео про мультипроцессинг в вашем исполнении! Спасибо!
Я как только услышал в начале видео, что в уроке не будет факториала и чисел фибоначчи сразу лайк поставил! Думаю кто будет искать еще какие-то уроки по рекурсии на ютубе или других ресурсах тот меня поймет)))
Действительно видео помогло разобраться, учусь на платформе, но и то не все было понятно. Сейчас что бы решить задачи с рекурсией, буду вначале раскладывать на этапы. Спасибо за видео)
Прекрасное разъяснение! Не только четко объяснил материал, но и несколько раз повторил чтобы помочь закрепить информацию. Огромное спасибо! Пересматриваю твои видео чтобы освежить память или подготовиться к собесам.
Четко. Грамотно. По полкам. Челом бью!
Видео достойно не одного, а как минимум 1 килотонны лайков в тротиловом эквиваленте (🧐)... Спешл для таких нубасиков как я, которые задолбались ПЫТАТЬСЯ понять эту долбаную рекурсию без взрыва головного мозга. ЛУЧШЕЕ объяснение из всего, что я пересмотрел- перечитал в инете! Спасибо за труды! 👍👍
@PythonRussian
2 ай бұрын
спасибо, не забудьте поделиться видео с другими изучающими и подпишитесь на канал, скоро выпущу очень важное и интересное видео
Привет! Как неожиданно и приятно)
спасибо, потратил 50 минут и не зря, вроде бы всё понял, пойду дальше шлифовать рекурсию, лайк
Вот это подарок прям! Спасбоооо!!!
Просто супер, спасибо бро!!
Спасибо, комментарий для повышения вовлеченности для канала
Толковое видео получилось, спасибо! В функции my_pow случай y == 2 можно отдельно не рассматривать, потому что он покрывается рекуррентной формулой. И хорошо было бы рассказать про мемоизацию, раз речь зашла про факториал.
@PythonRussian
2 ай бұрын
там вообще можно короче написать о чем я сразу и сказал и оставил как задание. А про мемоизацию -на данном этапе лишнее, хотя тема полезная
УРА!!!
Очень хорошо объяснена логика построения рекурсивной функции
Привет. Большое спасибо за видео!
Очень жду видео про мультипроцессинг в вашем исполнении! Спасибо!
Толковое видео но есть небольшое но. Стоило направить мысли зрителей на тему оптимизации рекурсии. Например отметить, что рекурсию возможно организовать лучше, значительно уменьшить глубину стека.
@PythonRussian
2 ай бұрын
мои ролики итак очень длинными получаются, обычно я стараюсь дать хотя бы какие то основы для понимания, углубление или остается зрителю или отдельно потом обсуждаем
спасибо. отличный материал
Сделал все, чтоб ты был рад - лайк, подписка и донат!) Думаю, прикрученный юсдт-кош увеличит тебе монетизацию Уроки отличные, без всяких "но" Если возможно сделать маркировку по сложности тем как-нибудь - было бы удобно. Я посмотрел все, где у меня были пробелы.Коммент пишу перед просмотром, не зная абсолютно что такое рекурсия.И какой базовый объем знаний нужен для освоения.И если бы был флаг сложности или цифровой последовательности(урок 39, к примеру) может это для продвинутых - я бы пошел смотреть инфу полегче,а к этому вернулся позже.Но все на твое усмотрение - просто фидбэк
@PythonRussian
2 сағат бұрын
понял, спасибо, наверное разделим по плейлистам или подумаем про какую то маркировку, это надо сделать понятно для всех.
Спасибо за ликбез. Наконец-то усвоил рекурсию
Супер
После Лутца не дошло, после "поколение пайтон" не дошло, после вас дошло(надеюсь). Благодарю!
Действительно тот человек, который довольно подробно разжевывает каждую тему. С кайфом бы смотрел и двухчасовые выпуски, но это конечно утопия для автора канала в ютубе. Пусть зачастую и знаю тему ролика, но просто приятно посмотреть хорошее объяснение)
Здорово! Ну раз тут есть элементы ии. Мне бы очень хотелось узнать, что ВЫ думаете об ии? Замене разрабов и тд?
@PythonRussian
2 ай бұрын
разрабов не заменить, помочь им ИИ сможет и то с осторожностью к результатам, не более того. Может сниму как-нибудь видео об этом
@nicsolov9821
2 ай бұрын
@@PythonRussianСпасибо! Я бы посмтрел ваше полное мненеи в видео формате. А то появляются там всякие Девиды:) Хорошего вечера!
привет! как к немногочисленному прогеру на ютубе, хочу задать вопрос, будет ли урок по докеру? возможно, работа с докером через пайчарм с приложениями джанго? единственный внятный и понятный урок по настройке гита через пайчарм был тут, поэтому уточняю тут :)))
@PythonRussian
2 ай бұрын
привет, я об этом не думал, у меня же контент больше для начинающих а им докер ни к чему... но я подумаю, вернее в список добавлю, но быстро не обещаю. Может отдельный плейлист снять по инструментам и фишкам для продвинутых питонистов
@py_dev
2 ай бұрын
@@PythonRussian было бы отлично, спасибо! :)
Это новая фича пайчарма 2024 - ai driven подсказки? Немного раздражает... Хорошая тема для новичков, спасибо за усилия (комментарий ради комментария 😊)
@PythonRussian
2 ай бұрын
нет, это плагин гигачат, я честно говоря не ожидал от него такой активности, он больше мешал мне)
@benben-fz2es
2 ай бұрын
@@PythonRussian мне тоже мешал. Хотя для документирования уже написанного кода он бы, наверное, зашел хорошо. То есть редактор (в издательском смысле) каментов
@alei1180_
2 ай бұрын
Как всегда просто и доступно. Низкий поклон.
@Trezvy_Papa
2 ай бұрын
Неее, с такими подсказками новички совсем перестанут думать.
Братан, со звуком беда
Никогда на 100% нельзя доверять ИИ)))
@PythonRussian
2 ай бұрын
да я его (плагин) только поставил, сам не ожидал такой прыти, мешался под ногами))
@AlexRootx
2 ай бұрын
@@PythonRussian уж сильно он надоедливый... иногда с толку сбивает... Отключил его, от греха подальше)
духота