Рекурсия в 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

  • @PythonRussian
    @PythonRussian2 ай бұрын

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

  • @barma1309

    @barma1309

    2 ай бұрын

    Вот позорники!!!

  • @nicsolov9821

    @nicsolov9821

    2 ай бұрын

    Без вопросов!

  • @user-ko8kz2zk2u

    @user-ko8kz2zk2u

    2 ай бұрын

    Очень жду видео про мультипроцессинг в вашем исполнении! Спасибо!

  • @Dryagin_Andry
    @Dryagin_Andry2 ай бұрын

    Я как только услышал в начале видео, что в уроке не будет факториала и чисел фибоначчи сразу лайк поставил! Думаю кто будет искать еще какие-то уроки по рекурсии на ютубе или других ресурсах тот меня поймет)))

  • @user-kw9ox9dg5d
    @user-kw9ox9dg5dАй бұрын

    Действительно видео помогло разобраться, учусь на платформе, но и то не все было понятно. Сейчас что бы решить задачи с рекурсией, буду вначале раскладывать на этапы. Спасибо за видео)

  • @SudoAptReboot512
    @SudoAptReboot5122 ай бұрын

    Прекрасное разъяснение! Не только четко объяснил материал, но и несколько раз повторил чтобы помочь закрепить информацию. Огромное спасибо! Пересматриваю твои видео чтобы освежить память или подготовиться к собесам.

  • @ivanpeasdervan1569
    @ivanpeasdervan156928 күн бұрын

    Четко. Грамотно. По полкам. Челом бью!

  • @user-no6qf4ib2e
    @user-no6qf4ib2e2 ай бұрын

    Видео достойно не одного, а как минимум 1 килотонны лайков в тротиловом эквиваленте (🧐)... Спешл для таких нубасиков как я, которые задолбались ПЫТАТЬСЯ понять эту долбаную рекурсию без взрыва головного мозга. ЛУЧШЕЕ объяснение из всего, что я пересмотрел- перечитал в инете! Спасибо за труды! 👍👍

  • @PythonRussian

    @PythonRussian

    2 ай бұрын

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

  • @anatolyiredko9817
    @anatolyiredko98172 ай бұрын

    Привет! Как неожиданно и приятно)

  • @ThembaKai
    @ThembaKai29 күн бұрын

    спасибо, потратил 50 минут и не зря, вроде бы всё понял, пойду дальше шлифовать рекурсию, лайк

  • @user-buser_eto_ja
    @user-buser_eto_ja2 ай бұрын

    Вот это подарок прям! Спасбоооо!!!

  • @Tolya421.
    @Tolya421.12 күн бұрын

    Просто супер, спасибо бро!!

  • @MioGesa-md2ul
    @MioGesa-md2ul2 ай бұрын

    Спасибо, комментарий для повышения вовлеченности для канала

  • @BritScientist
    @BritScientist2 ай бұрын

    Толковое видео получилось, спасибо! В функции my_pow случай y == 2 можно отдельно не рассматривать, потому что он покрывается рекуррентной формулой. И хорошо было бы рассказать про мемоизацию, раз речь зашла про факториал.

  • @PythonRussian

    @PythonRussian

    2 ай бұрын

    там вообще можно короче написать о чем я сразу и сказал и оставил как задание. А про мемоизацию -на данном этапе лишнее, хотя тема полезная

  • @tryhard114
    @tryhard1142 ай бұрын

    УРА!!!

  • @Dryagin_Andry
    @Dryagin_Andry2 ай бұрын

    Очень хорошо объяснена логика построения рекурсивной функции

  • @ga2852
    @ga28522 ай бұрын

    Привет. Большое спасибо за видео!

  • @user-ko8kz2zk2u
    @user-ko8kz2zk2u2 ай бұрын

    Очень жду видео про мультипроцессинг в вашем исполнении! Спасибо!

  • @Ssilki_V_Profile
    @Ssilki_V_Profile2 ай бұрын

    Толковое видео но есть небольшое но. Стоило направить мысли зрителей на тему оптимизации рекурсии. Например отметить, что рекурсию возможно организовать лучше, значительно уменьшить глубину стека.

  • @PythonRussian

    @PythonRussian

    2 ай бұрын

    мои ролики итак очень длинными получаются, обычно я стараюсь дать хотя бы какие то основы для понимания, углубление или остается зрителю или отдельно потом обсуждаем

  • @Nonstop4ik
    @Nonstop4ik2 ай бұрын

    спасибо. отличный материал

  • @vladimirIvanov-ut9fo
    @vladimirIvanov-ut9fo10 сағат бұрын

    Сделал все, чтоб ты был рад - лайк, подписка и донат!) Думаю, прикрученный юсдт-кош увеличит тебе монетизацию Уроки отличные, без всяких "но" Если возможно сделать маркировку по сложности тем как-нибудь - было бы удобно. Я посмотрел все, где у меня были пробелы.Коммент пишу перед просмотром, не зная абсолютно что такое рекурсия.И какой базовый объем знаний нужен для освоения.И если бы был флаг сложности или цифровой последовательности(урок 39, к примеру) может это для продвинутых - я бы пошел смотреть инфу полегче,а к этому вернулся позже.Но все на твое усмотрение - просто фидбэк

  • @PythonRussian

    @PythonRussian

    2 сағат бұрын

    понял, спасибо, наверное разделим по плейлистам или подумаем про какую то маркировку, это надо сделать понятно для всех.

  • @alexchto
    @alexchto2 ай бұрын

    Спасибо за ликбез. Наконец-то усвоил рекурсию

  • @barma1309
    @barma1309Ай бұрын

    Супер

  • @Trezvy_Papa
    @Trezvy_Papa2 ай бұрын

    После Лутца не дошло, после "поколение пайтон" не дошло, после вас дошло(надеюсь). Благодарю!

  • @bolkonsky2340
    @bolkonsky23402 ай бұрын

    Действительно тот человек, который довольно подробно разжевывает каждую тему. С кайфом бы смотрел и двухчасовые выпуски, но это конечно утопия для автора канала в ютубе. Пусть зачастую и знаю тему ролика, но просто приятно посмотреть хорошее объяснение)

  • @nicsolov9821
    @nicsolov98212 ай бұрын

    Здорово! Ну раз тут есть элементы ии. Мне бы очень хотелось узнать, что ВЫ думаете об ии? Замене разрабов и тд?

  • @PythonRussian

    @PythonRussian

    2 ай бұрын

    разрабов не заменить, помочь им ИИ сможет и то с осторожностью к результатам, не более того. Может сниму как-нибудь видео об этом

  • @nicsolov9821

    @nicsolov9821

    2 ай бұрын

    @@PythonRussianСпасибо! Я бы посмтрел ваше полное мненеи в видео формате. А то появляются там всякие Девиды:) Хорошего вечера!

  • @py_dev
    @py_dev2 ай бұрын

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

  • @PythonRussian

    @PythonRussian

    2 ай бұрын

    привет, я об этом не думал, у меня же контент больше для начинающих а им докер ни к чему... но я подумаю, вернее в список добавлю, но быстро не обещаю. Может отдельный плейлист снять по инструментам и фишкам для продвинутых питонистов

  • @py_dev

    @py_dev

    2 ай бұрын

    @@PythonRussian было бы отлично, спасибо! :)

  • @benben-fz2es
    @benben-fz2es2 ай бұрын

    Это новая фича пайчарма 2024 - ai driven подсказки? Немного раздражает... Хорошая тема для новичков, спасибо за усилия (комментарий ради комментария 😊)

  • @PythonRussian

    @PythonRussian

    2 ай бұрын

    нет, это плагин гигачат, я честно говоря не ожидал от него такой активности, он больше мешал мне)

  • @benben-fz2es

    @benben-fz2es

    2 ай бұрын

    @@PythonRussian мне тоже мешал. Хотя для документирования уже написанного кода он бы, наверное, зашел хорошо. То есть редактор (в издательском смысле) каментов

  • @alei1180_

    @alei1180_

    2 ай бұрын

    Как всегда просто и доступно. Низкий поклон.

  • @Trezvy_Papa

    @Trezvy_Papa

    2 ай бұрын

    Неее, с такими подсказками новички совсем перестанут думать.

  • @awtdawtd
    @awtdawtd14 күн бұрын

    Братан, со звуком беда

  • @AlexRootx
    @AlexRootx2 ай бұрын

    Никогда на 100% нельзя доверять ИИ)))

  • @PythonRussian

    @PythonRussian

    2 ай бұрын

    да я его (плагин) только поставил, сам не ожидал такой прыти, мешался под ногами))

  • @AlexRootx

    @AlexRootx

    2 ай бұрын

    @@PythonRussian уж сильно он надоедливый... иногда с толку сбивает... Отключил его, от греха подальше)

  • @user-xb8pd9jw6g
    @user-xb8pd9jw6gАй бұрын

    духота