РеКуРсИя в Python (стэк вызовов, оптимизация хвоста и альтернативы)

Поділитися
Вставка
  • Опубліковано 10 лип 2024
  • Чтобы понять рекурсию, нужно понимать рекурсию, пока не поймёшь рекурсию.
    Тайм коды:
    00:00 - интро
    00:25 - что считать рекурсией
    03:38 - сквозная сумма списка
    08:11 - стэк вызовов
    17:58 - хвосты и оптимизация
    23:15 - Гвидо не хотел оптимизировать
    26:13 - немного о быстродействии и удобстве
    28:35 - замена на очередь
    33:50 - ну и всё

КОМЕНТАРІ • 24

  • @perfa8527
    @perfa8527 5 місяців тому +3

    Огромное спасибо за видео. Пожалуйста не переставайте делать видео. Очень познавательно.

    • @pythonclinic
      @pythonclinic  5 місяців тому +1

      видео будут, хоть и реже, но будут

  • @Andrew-xb3nv
    @Andrew-xb3nv 5 місяців тому +1

    Спасибо, отличная визуализация материала.
    Относительно тем было бы интересно видеть ваше видение на темы - "Что должен уметь python-junior/middle/ senior", "Как подготовиться к собеседованию (чтобы вы посоветовали кандидату спросить у работадателя)", "Алгоритмическая часть собеседований". Если у вас есть опыт собеседований , то что бы вы хотели видеть от кандидата, какое резюмэ имеет большую вероятность быть замеченным. Так ли актуален soft-skills или это хайп, разбор паттернов. И всегда интересен обзор новых фичей в версиях языка.

    • @pythonclinic
      @pythonclinic  5 місяців тому

      спасибо, я всё записал себе)

  • @vano03voin
    @vano03voin 5 місяців тому +3

    Я первый! Обожаю этот канал и его глубину копки❤

    • @pythonclinic
      @pythonclinic  5 місяців тому +1

      копаем на всю глубину стэка вызовов))

  • @viska_tru
    @viska_tru 5 місяців тому

    Сразу лайк

  • @dmitrymorozov3038
    @dmitrymorozov3038 5 місяців тому

    Эти огромные очки напоминают мне вершителей из "Отроков во Вселенной". А если серьёзно, то мне понравилось. И про нестандартные коллекции хотелось бы послушать.

    • @pythonclinic
      @pythonclinic  5 місяців тому

      осчастливлю вас чем-нибудь)

  • @steefsteefler5760
    @steefsteefler5760 5 місяців тому

    Давно ждал новых видео. Спасибо.

  • @sladge17
    @sladge17 5 місяців тому +1

    Спасибо за видео.
    В видео были упомянуты термины статический анализ и динамический анализ, без объяснения, что они означают. Было-бы здорово узнать про это в отдельном видео, и про то, как они используются в python.
    Зря не показали, как можно менять глубину рекурсии. Даже если это плохая практика, хотелось-бы, что-бы данный канал сохранял техническую полноту доносимой информации.
    Видео, про коллекции в python, конечно хочу :)

  • @user-gq2pn6vu4f
    @user-gq2pn6vu4f 5 місяців тому

    Про чистый стек тоже интерано будет послушать

  • @kohakovich
    @kohakovich 4 місяці тому

    Спасибо за ваши видео очень дельные и по существу. Хотелось бы спросить не планируется ли видео по устройству самих it компаний ? То есть как распределяется роли как тестируется код и какие проекты и тд... Признаки плохой и хорошой. Конечно у них могут быть разные бюджеты и проекты, бывают компании с плохой организацией и условиями труда, но с большим оборотом и наоборот. Мне бы очень хотелось услышать именно ваше мнение, так как по мне один из лучших каналов в теме ИТ. Спасибо.

    • @pythonclinic
      @pythonclinic  4 місяці тому +1

      Я подумаю, как это можно включить в план, может в виде шортсов, например

  • @nachtblume6629
    @nachtblume6629 5 місяців тому

    Не уходи так надолго ❤❤ спасибо за видео

  • @user-gq2pn6vu4f
    @user-gq2pn6vu4f 5 місяців тому

    Хочется смотреть. Воспринимается как летсплей, но про программирование. И про разницу очереди и стека будет интервно узнать

  • @user-tf9ku1xx7x
    @user-tf9ku1xx7x 5 місяців тому

    Название видео, что-то из 2007. Отличная работа❤‍🔥

  • @user-vz9xf3on4i
    @user-vz9xf3on4i 5 місяців тому

    Никита, скажите, пожалуйста, какие языки программирования Вы ещё используете в своей работе?

    • @pythonclinic
      @pythonclinic  5 місяців тому

      именно по работе сейчас особо не хватает времени писать код, но когда хватало, я писал ещё на C# и JS (fool stack, получается🧐)

    • @user-ep6dz6sr6i
      @user-ep6dz6sr6i 4 місяці тому

      ​@@pythonclinicможет быть full stack а не fool stack ? А то плохое слово получается 😂

  • @tryhard114
    @tryhard114 3 місяці тому

    Автор, я может чего-то не понимаю...но:
    7:51 - тайминг
    -------------------------------------
    l = [1, [2, 3, [4]], 5]
    def sum_list(l, res=0):
    for i in l:
    if isinstance(i, list):
    sum_list(l, res) #1.) вот здесь что у вас? - RecursionError: maximum recursion depth exceeded
    # 2.) даже если исправим ошибку с общим списком на вложенные с l на i, то суммируем только 1-уровень.
    #3.) чтобы исправить это - необходимо каждый раз обновлять значение переменной res: res = sum_list(i, res)
    else:
    res += i
    return res
    print(sum_list(l))
    -------------------------------------
    Исправленный код:
    l = [1, [2, 3, [4]], 5]
    def sum_list(l, res=0):
    for i in l:
    if isinstance(i, list):
    res = sum_list(i, res)
    else:
    res += i
    return res
    print(sum_list(l))

    • @pythonclinic
      @pythonclinic  3 місяці тому

      да, там нужно i вместо l и замена значения, поторопился, бывает(

    • @tryhard114
      @tryhard114 3 місяці тому

      @@pythonclinic Ах вы хитрый автор, со своими скрытыми квестами для более внимательных!))ну, хитреец..)) Так и учимся чо.) Если серьёзно, то в ваших следующих роликах - запускайте код в ide прям на записи. Так даже лучше будет! При возникновение ошибок последует моментальное их устранение и во многом будет понятнее что к чему

    • @pythonclinic
      @pythonclinic  3 місяці тому

      ну вот кстати я чаще запускаю, чем не запускаю)) даже если это потом для экономии времени вырезаю из видео просто
      тут уже не помню, куда я так торопился, если честно