НАЙДИТЕ 50 МИНУТ, ЧТОБ НАКОНЕЦ ПОНЯТЬ РЕКУРСИЮ В PYTHON!

Поделиться
HTML-код
  • Опубликовано: 20 дек 2024

Комментарии • 14

  • @it_minimal
    @it_minimal  7 месяцев назад +1

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

  • @nomore7222
    @nomore7222 2 месяца назад

    Кажется я нашел самый недооцененный канал ютуба 😮
    Я нихера не могу понять, почему так мало просмотров и подписчиков ?!?!
    Чувак, ты очень доходчиво и внятно всё объясняешь, афигенная подача, грамотная речь, плотность материала идеально разбавлена нотками юмора, смотреть твой канал - одно удовольствие ( хотя я очень дойобистый по жизни ) спасибо всем причастным к данному каналу за вашу работу!!! Пожалуйста, продолжайте ))))

  • @АлексейФролов-ч9ь
    @АлексейФролов-ч9ь 5 месяцев назад +1

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

  • @АлександрНиколаенко-я5й
    @АлександрНиколаенко-я5й 6 месяцев назад

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

  • @АндрейМолоков-е4р
    @АндрейМолоков-е4р 3 месяца назад

    Давай лучше обьяснять на яблоках ,грушах, на пиве в конце концов . Пришлось фильм пересматривать 😄Спасибо за контент!👍
    Для себя провел аннологию с рулеткой: вначале разматываем рулетку чтобы отмерить 1 м детали с метками по 10 см по достижению 1м сматываем обратно с тем же шаго в 10см.

  • @DartMolll
    @DartMolll 7 месяцев назад +1

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

  • @Alex-alexey-q8l
    @Alex-alexey-q8l 7 месяцев назад

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

  • @bzyx8087
    @bzyx8087 7 месяцев назад

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

    • @it_minimal
      @it_minimal  7 месяцев назад

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

  • @gzhegow
    @gzhegow 7 месяцев назад

    не забудьте что рекурсия - это про копирование области видимости. и кроме того что она "просто вызывает сама себя" - старая, уже запущенная функция, никуда не пропадает, а значит и данные, которые в ней были тоже. и вот запустив саму себя 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  7 месяцев назад

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

    • @gzhegow
      @gzhegow 7 месяцев назад

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

  • @gadjia61
    @gadjia61 7 месяцев назад

    Аминь 😂