РЕКУРСИЯ В PYTHON ПОНЯТНЫМ ЯЗЫКОМ. ПРОСТРАНСТВО ИМЕН ПЕРЕМЕННЫХ.

t.me/it_minimal Здесь разбираем сложные темы на простые части и объясняем на пальцах.
Все уроки, полезные советы, как правильно учиться, как в 2024 найти работу в IT - здесь t.me/it_minimal
ПРАКТИКА, ПОДДЕРЖКА И ПОМОЩЬ В ТГ-канале t.me/it_minimal
Подпишись!
Поддержать проект можно здесь - t.me/it_minimal/315
it_minimal - есть и ВК

Пікірлер: 9

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

    Самое интересное у нас в ТГ - t.me/it_minimal, подпишись, там много полезного и интересного), а также там можно задать любые вопросы, если возникают сложности и получить консультацию по языку Python / Анализу данных / Работе в IT! 🖤

  • @DartMolll
    @DartMolll22 күн бұрын

    Супер круто. Сенсей, а расскажите о замыкании функций? Вообще не понимаю зачем оно нужно

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

    Аминь 😂

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

    Офигенно объяснил!!😂❤ меня в мозгу уозникала такая хрень. Сравнить можно только с бесконечным туннелем 🤣 когда в зеркало смотришь через отражение в зеркале. Там туннель в бесконечность... И все время была проблема с ответом на вопрос, а где же конец этому, где выход??? Теперь все ясно, как день! Спасибо огромное! 😊😊😊

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

    на самом деле рекурсия довольно часто используется, при работе с данными, когда кол-во уровней вложенности не ограничено parent -> child -> child2 -> child3 и тд Разруливать неограниченную вложенность циклами очень громоздко, и лучше конечно это делать на уровне SQL, где для рекурсии используется более удобный синтаксис

  • @it_minimal

    @it_minimal

    Ай бұрын

    Данные данным - рознь, как и аналитика аналитике

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

    не забудьте что рекурсия - это про копирование области видимости. и кроме того что она "просто вызывает сама себя" - старая, уже запущенная функция, никуда не пропадает, а значит и данные, которые в ней были тоже. и вот запустив саму себя 100 раз получили 100 копий данных, которые в ней появлялись и присваивались в переменные! (каждые для своего вызова) вот почему рекурсию стоит использовать там, где данные передаются в виде аргументов, а не хранятся внутри тела. то есть функция факториала должна предыдущий результат сразу же забрасывать аргументом в вызов "самой себя", а не хранить его в переменной рядом. или по крайней мере хранить только один результат вычисления, чтобы память на одном само-вызове расходовалась по нескольку байт, а не килобайтами. самый частый случай - это написать рекурсию в каком-то классе, которая будет иметь ту же область видимости, что и весь класс. и запустив себя 100 раз она скопирует все данные-не-обьекты 100 раз, на случай если в каком-то из уровней они изменятся в некоторых языках есть понятие "ссылки", и в переменную можно положить не значение, а ссылку на уже существующее место в памяти, то есть оба имени переменной будут вести в одну и ту же коробку, где складируются результаты. в этом случае данные лежат один раз, а в переменной лежит 1 байт адреса куда она смотрит. в остальных случаях её пишут с помощью цикла while избегая создания функций. while (queue) { // или stack (стек обходит в глубину 1 -> 1.1 -> 2 -> 2.1, очередь - в ширину 1 -> 2 -> 1.1 -> 2.1 ) current = queue.shift(); // если стек - то pop() if (condition) { do_some(current); } else { queue.push(next step); // если стек - то unshift() } }

  • @it_minimal

    @it_minimal

    Ай бұрын

    Отличный комментарий 👍

  • @gzhegow

    @gzhegow

    Ай бұрын

    @@it_minimal помогите найти работу...