Python Clinic
Python Clinic
  • Видео 45
  • Просмотров 103 378
Python - самый популярный язык программирования в мире
Неоспоримый факт, но тем не менее, посмотрим на несколько разных рейтингов и обсудим причины популярности.
Таймкоды:
00:00 - мы это сделали
00:42 - TIOBE
06:51 - GitHub Octoverse
10:02 - StackOverflow Developer Survey
12:50 - изучение python
TIOBE www.tiobe.com/tiobe-index/
GitHub Octoverse github.blog/news-insights/octoverse/octoverse-2024/#the-most-popular-programming-languages
StackOverflow Developer Survey survey.stackoverflow.co/2024/technology#most-popular-technologies-language-prof
Просмотров: 452

Видео

Анализ данных на Python (pandas, matplotlib): кто имел больше шансов выжить на Титанике
Просмотров 4605 месяцев назад
Смотрим на известный датасет исторических данных о катастрофе на Титанике, который можно найти здесь - www.kaggle.com/competitions/titanic Таймкоды: 00:00 - обзор датасета и гипотеза 03:03 - основы pandas 05:33 - средние цены на билеты 07:24 - классы билетов 08:26 - нехватка данных 09:28 - удаляем "плохие" записи 09:48 - дополняем "плохие" записи 11:47 - распределение цен 15:45 - группировка по...
Пишем доморощенный веб сервер на Python
Просмотров 7075 месяцев назад
в этом видео я опишу процесс создания и работы очень простенького веб сервиса с помощью модуля socket
Деревья на Python: бинарное дерево поиска (BST), красно-чёрное (BRT)
Просмотров 8706 месяцев назад
Разбираемся с тем, как устроены разные виды деревьев и конечно же реализуем их на Python. Таймкоды: 00:00 - задача о директориях 04:24 - решаем через дерево 08:58 - определения и термины 16:25 - простейшее дерево 19:51 - бинарное дерево поиска 25:18 - реализация бинарного дерева поиска 30:11 - кривое дерево 38:00 - красно-чёрное дерево 45:20 - повороты 48:36 - алгоритм вставки 55:15 - уже не та...
Как устроены хэш таблицы и словари на примере Python (hash table / dict)
Просмотров 1,6 тыс.8 месяцев назад
Что там под капотом у типа dict? Что такое хэш функция? Можно ли избежать коллизий? Ответы в этом видео. Мы продолжаем разбираться со структурами данных на примере Python, как всегда, если у вас есть вопросы или предложения, смело пишите обо всём в комментариях. Таймкоды: 00:00 - подсчёт слов в тексте двойным циклом 01:59 - вариации подсчёта через словарь 08:36 - устройство хэш таблицы и хэш фу...
Стек/stack и очередь/queue в PYTHON
Просмотров 1,5 тыс.10 месяцев назад
Привет, в этом видео я расскажу о двух структурах данных, которые лежат в основе самого программирования, это stack/стек и queue/очередь. Посмотрим на разные реализации в Python, на задачи с интервью и практические примеры. Как всегда можете смело задавать вопросы в комментариях. 00:00 - задача с интервью 03:12 - решение с “депо” 10:54 - stack/стек 11:53 - queue/очередь 12:50 - формальный интер...
Большое О - ассимптотическая оценка сложности алгоритмов
Просмотров 1,5 тыс.11 месяцев назад
При проектировании решений мы стремимся к максимальной эффективности. Понимание сложности алгоритмов и умение их сравнивать критически важно для подбора наиболее эффективного решения, поэтому понимать принципы ассимптотической оценки - очень важно. Даже если вы считаете, что все алгоритмы уже написаны, а chatGPT подскажет решение в любой ситуации. Таймкоды: 00:00 - пример вопроса с интервью и к...
РеКуРсИя в Python (стэк вызовов, оптимизация хвоста и альтернативы)
Просмотров 1,1 тыс.Год назад
Чтобы понять рекурсию, нужно понимать рекурсию, пока не поймёшь рекурсию. Тайм коды: 00:00 - интро 00:25 - что считать рекурсией 03:38 - сквозная сумма списка 08:11 - стэк вызовов 17:58 - хвосты и оптимизация 23:15 - Гвидо не хотел оптимизировать 26:13 - немного о быстродействии и удобстве 28:35 - замена на очередь 33:50 - ну и всё
Приципы SOLID и PYTHON - подробный разбор на практике
Просмотров 3,8 тыс.Год назад
Давно обещал выпустить это видео, и вот время пришло. Здесь будет подробный разбор применения техник SOLID в Python. Пример, как и само видео, будет достаточно сложным, так что не переживайте, если не получится всё это ухватить с первого раза, ну и не стесняйтесь задавать вопросы в комментариях. Так же в конце есть небольшая секция, где я делюсь своими мыслями о будущем этого канала. Таймкоды: ...
Методы классов в Python
Просмотров 1,5 тыс.Год назад
Объясняю в чём разница между classmethod и staticmethod в python, и немного рассказываю о том, где эти декораторы применяются, а где можно обойтись и без них. Вообще пайтон настолько гибкий, что в целом без них моджнобыло бы обойтись везде, но они дают нам немного дополнительного контроля над тем, как и где эти методы вызываются и переопределяются. Таймкоды: 00:00 - интро 00:22 - методы класса ...
Асинхронность в python
Просмотров 4,8 тыс.Год назад
Рассказываю о том, что вообще такое асинхронность, и как она реализована в python. Видео получилось очень поучительным, сразу понятно, что асинхронность это не серебряная пуля, а скорее осиновый кол, который нужно долго и методично строгать перед использованием. Таймкоды: 00:00 - интро 00:15 - что вообще такое асинхронность 07:20 - многопоточность? 09:02 - async 11:47 - await 13:28 - asyncio 15...
Абстрактные классы в Python
Просмотров 4,7 тыс.Год назад
Разбираемся с тем, как работает abstract base class или abc. Абстрактные классы позволяют в явном виде заставить дочерние классы переопределять поведения родителей, за счёт этого мы можем строить более гибкие иерархии наследования. Таймкоды: 00:00 - интро 01:06 - интерфейсы 04:17 - абстрактные классы 05:33 - необходимые инструменты 09:16 - расширяем дочерние классы 10:55 - результат 11:59 - аутро
Потоки ненастоящие? GIL в Python
Просмотров 2 тыс.Год назад
В этом видео мы разоблачим иллюзию относительно быстроты работы потоков в Python. GIL превращает все объекты в потокобезопасные, но платим за это мы производительностью, и на самом деле потоки очень редко работают по-настоящему параллельно. Разбираемся, в каких ситуациях их можно использовать с выгодой. Канал в тг, где я делюсь своими мыслями по видосам и не только - t.me/PythonClinicChnl Таймк...
Множественное наследование и алгоритм MRO в Python
Просмотров 2,4 тыс.Год назад
Пришло время поговорить о множественном наследовании в Python. Проблема множественного наследования на концептуальном уровне это конфликты. В пайтон они разрешаются с помощью алгоритма MRO, который стоит понимать, с тем чтобы правильно строить иерархии наследования и переиспользовать родительское поведение. Так же коротко рассказываю о принципе работы метода super(). Таймкоды: 00:00 - проблема ...
Потоки в Python
Просмотров 1,5 тыс.Год назад
Смотрим на интерфейс работы с потоками и сравниваем его с аналогичными инструментами для процессов. Заодно проверили и производительность тоже. Основной вывод - потоки (в Python и по жизни) стоит использовать для распараллеливания простейших задач, либо вещей которые зависят от IO. Для сложных вычислений лучше использовать всё же процессы. Группа в тг - t.me/PythonClinicChnl Таймкоды: 00:00 - и...
Механизм наследования в Python
Просмотров 1,2 тыс.Год назад
Механизм наследования в Python
Борьба за ресурсы между процессами Python
Просмотров 615Год назад
Борьба за ресурсы между процессами Python
Подходы eafp и lbyl на примере Python
Просмотров 663Год назад
Подходы eafp и lbyl на примере Python
Коммуникация между процессами в Python
Просмотров 760Год назад
Коммуникация между процессами в Python
Разбор байткода Python с помощью модуля dis
Просмотров 734Год назад
Разбор байткода Python с помощью модуля dis
Pool процессов в Python - параллельность и асинхронность
Просмотров 1,9 тыс.Год назад
Pool процессов в Python - параллельность и асинхронность
Дескрипторы в Python - максимальная инкапсуляция
Просмотров 3,2 тыс.Год назад
Дескрипторы в Python - максимальная инкапсуляция
Основы работы с процессами в Python
Просмотров 1,5 тыс.Год назад
Основы работы с процессами в Python
Компиляторы, интерпретаторы и когда всё-таки интернируются строки
Просмотров 1,1 тыс.Год назад
Компиляторы, интерпретаторы и когда всё-таки интернируются строки
Сборка мусора (garbage collection) в Python
Просмотров 4,3 тыс.Год назад
Сборка мусора (garbage collection) в Python
Properties в Python - во-первых это красиво
Просмотров 2 тыс.Год назад
Properties в Python - во-первых это красиво
Python не тратит ни одного лишнего байта
Просмотров 1,9 тыс.Год назад
Python не тратит ни одного лишнего байта
ОГРОМНЫЙ обзор и сравнение PyCharm и Visual Studio Code
Просмотров 13 тыс.Год назад
ОГРОМНЫЙ обзор и сравнение PyCharm и Visual Studio Code
Изменяемость объектов с точки зрения управления памятью в Python
Просмотров 1,6 тыс.Год назад
Изменяемость объектов с точки зрения управления памятью в Python
Инкапсуляция в Python (и не только)
Просмотров 1,4 тыс.Год назад
Инкапсуляция в Python (и не только)

Комментарии

  • @in3gun300
    @in3gun300 4 дня назад

    На этом датасете уже дыры должны быть. Неужели на кегле нет ничего другого?

  • @hwedarby
    @hwedarby 5 дней назад

    Уже 25-ый, возвращайся! :) (ты еще как минимум видео про полиморфизм остался должен)

    • @pythonclinic
      @pythonclinic 4 дня назад

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

  • @АндрейСоколов-п9я
    @АндрейСоколов-п9я 11 дней назад

    Правильно ли понял, что в (ванильном) Python в принципе нет понятия абстрактного метода?

    • @pythonclinic
      @pythonclinic 10 дней назад

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

    • @АндрейСоколов-п9я
      @АндрейСоколов-п9я 10 дней назад

      @@pythonclinic спасибо за ответ!

  • @duke007x3
    @duke007x3 11 дней назад

    а про композицию можно плиз?)

  • @TheLeechuck
    @TheLeechuck 16 дней назад

    Python никогда не возвращает память операционной системе.

  • @ЕвгенияМамонова-к7в

    В try except отсылка к имени класса Dog некорректна. Если захочется изменить имя класса, то строка вызовет ошибку. Лучше записать как self.__class__. Таким образом будет снята зависимость

    • @pythonclinic
      @pythonclinic 22 дня назад

      тогда уже self.__class__.__name__

    • @ЕвгенияМамонова-к7в
      @ЕвгенияМамонова-к7в 22 дня назад

      @pythonclinic нет. Там идет отсылка к классу, в строке кода под try, а не к имени класса

    • @ЕвгенияМамонова-к7в
      @ЕвгенияМамонова-к7в 22 дня назад

      @pythonclinic к классу, как к объекту

    • @ЕвгенияМамонова-к7в
      @ЕвгенияМамонова-к7в 22 дня назад

      Нужно еще раз код глянуть, может и ошибаюсь, и действительно self.__class__.__name__. Но не суть. Суть в том, что прямую зависимость нужно убирать

  • @ЕвгенияМамонова-к7в

    Если будет штук 20 свойств приватных в классе, и классов штук 20, то сеттеры, геттеры к ним всем и property будут только нагружать код. Лучше дескриптор написать. Красивее, удобнее, чище получается

  • @andreypligin9122
    @andreypligin9122 26 дней назад

    Блин из за того что это отдельный класс с абстракцией десятичного числа, этот тип намного медленней float, а время - деньги!

  • @bandrjuxa
    @bandrjuxa 29 дней назад

    Что значит gil выключен при io, он не выключен...

  • @bandrjuxa
    @bandrjuxa Месяц назад

    Не понятно, если сама функция getrefcount знает про такое своё поведение, что она добавляет одну ссылку, почему она сама в результате не может выдавать результат -1 ? По моему это недоработка самой функции...

    • @pythonclinic
      @pythonclinic Месяц назад

      не, сама функция ничего такого не знает и это очень важный момент)) вообще идея отнимать единицу неплохая, но она противорчеит генирализации логики всех подобных функций низкого уровня, они должны реализовывать максимально общую логику без привязки к частностям; например, мы вызываем эту функцию так, как нам удобно, передаём туда объект, как нам удобно, и тем самым создаём лишнюю ссылку, но есть ещё вызовы со стороны интерпретатора, который напрямую обращается к куску кода этой функции и выполняет его с параметрами, хранящимися в стэке, от этого количество ссылок не увеличивается и отнимать единицу уже не нужно

  • @АлексейЛуз-б3й
    @АлексейЛуз-б3й Месяц назад

    Скорость 1.25 и вообще огонь

  • @sergeyeliseev4896
    @sergeyeliseev4896 Месяц назад

    Никит, спасибо за видео, (пока это лучшее, что видел по этой теме) . Не сразу ооп на твоем канале попалось на глаза. Можешь пояснить зачем в методах класса в качестве аргумента указывается self, нужно ли это делать всегда?

    • @pythonclinic
      @pythonclinic Месяц назад

      да, ситуация такая, при вызове любого метода на экземпляре класса в этот метод автоматически передаётся ссылка на сам объект этого экземпляра первым параметром, поэтому обычно ставится self (но вообще название аргумента может быть любым), чтобы эту ссылку принять есть несколько ситуаций, когда self не нужен, например, в classmethod (метод уровня класса) автоматически будет лететь ссылка на сам класс вместо экземпляра (переменную называют cls вместо self), а в staticmethod предполагается отсутствие состояния объектов, и туда вообще не приходит этот автоматический параметр

  • @lostfoundbaby
    @lostfoundbaby Месяц назад

    Краткая выжимка для тех кто не хочет смотреть 15 мин: Блаблаблаблабла блабла блаблабла блабла блаблабла! Бла, бла, бла блааа блаблабла

  • @vano03voin
    @vano03voin Месяц назад

    Покапался по тг, на твиче записей стримов нет, хотел спросить в каком университете ты преподаешь, ты сказал "мои студенты", как то так. Я когда поступал не находил направление направленное на профессиональное использование питона😅

    • @pythonclinic
      @pythonclinic Месяц назад

      я сейчас веду курс по алгоритмам в Вильнюсе, в School of Digital Competencies (это по сути отедельный факультет на базе университета, можно прямо так и гуглить если интересно)

  • @perfa8527
    @perfa8527 Месяц назад

    Привет, спасибо за видео. Хотелось бы поучаствовать в получении знаний от тебя :)

  • @sergeyeliseev4896
    @sergeyeliseev4896 Месяц назад

    Круто, канал жив. Боялся, что он заброшен. Полезной информации очень много, спасибо. Не планируешь что-нибудь интересное про ооп рассказать?

    • @pythonclinic
      @pythonclinic Месяц назад

      да как бы есть уже несколько видосов на канале на эту тему, пока не планировал, но если что-то специфическое интересует, то напиши, я посмотрю, что можно сделать

  • @vano03voin
    @vano03voin Месяц назад

    Я знал что ты жив! Не пропадай на долго❤ Ставлю царский лайк)

  • @SimpleMRish
    @SimpleMRish Месяц назад

    Лучшее объяснение mro на youtube!

  • @yespeace2438
    @yespeace2438 Месяц назад

    Наткнулся в интернетах в очередной раз на упоминание сборщика мусора, не выдержал и пошёл всё же на ютубы, а тут с ходу такой инструктаж класный. Спасибо тебе😊

  • @for_stretching
    @for_stretching Месяц назад

    Я не понимаю, почему так мало просмотров Никита, ты крут! Классная подача и отлично структурированная инфа, спасибо большое за твой труд!

    • @pythonclinic
      @pythonclinic Месяц назад

      большое спасибо)

  • @MenkarX
    @MenkarX Месяц назад

    VS Code. Autopep8 и code runner в помощь

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

    Спасибо. Лучший канал по питону. Надеюсь канал не заброшен

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

    Люблю использовать ленивые вычисления, когда нужно сделать возврат результата из api: list_users = api.get_users() return list_users or [] Или, когда нужно вернуть только первый элемент: return list_users and list_users[0]

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

    Спасибо большое. Довольно чёткое объяснение сложной темы! Я всё понял) Но остался вопрос. Сам Асинхронный код не сильно нагружает программу? Если тяжёлый юзер интерфейс сделать асинхронным, он для процессора станет проще? Для юзера то станет. Вот я к чему)

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

      не, железу проще не станет) наоборот, придётся что-то делать вместо тупого ожидания ответа

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

      @@pythonclinic т.е. получается асихронность не удел слабых ПК? Понятно) Спасибо за ответ!)

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

    еее, бороду отрастил, взгляд у тебя стал строже XD. Cпасибо за видео

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

      хаха, спасибо))

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

    Суперполезное видео, спасибо. Продолжения нет?

  • @МаксимНовиков-ь4ц
    @МаксимНовиков-ь4ц 2 месяца назад

    Посмотрел весь цикл роликов, большое спасибо, много довольно подробной информации. Редко можно увидеть столько деталей. Про многопроцессорность вроде понятно. Но можно и отдельным процессом отправить запрос, верно? Наверное, очень затратно создавать его для такой пустяковой задачи.. Но а как же многопоточность? Можно же её применить для этих целей. Хотелось бы увидеть сравнительно видео, где все таки лучше применить тот или иной способ(многопоточность/многопроцессорность/асинхронность) И также интересно узнать как применить подобное ускорение на запросы к БД(видимо лучше с этим справяться потоки, но хотелось бы увидеть этот разбор)

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

      насчёт процесса - да, это не очень рационально с точки зрения расхода ресурсов на создание и убийство нового процесса отдельные процессы лучше всего применять для отделения сложных с точки зрения cpu задач, например, рендеринг сотен часов видео без участия пользователя; многопоточность хорошо подходит для связанных между собой задач, например рендеринг пары часов видео- и звуковых дорожек по общим исходникам (тоже без участия пользователя), а асинхронность можно добавлять есть есть i/o операции или попросту интерфейс пользователя, при жедании можно скомбинировать асинхронность с любым из предыдущих примеров, будет ренедеринг видео с возможностью вывода прогресса на интерфейс так чтобы он не замирал при этом

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

    Спасибо, очень полезно!

  • @СергейИгонин-п3п
    @СергейИгонин-п3п 2 месяца назад

    Приходится переходить на vscode для задач автоматизации на питоне. В пайчарм из-за санкций невозможно скачивать расширения, в частности Docker😢

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

      а впн не поможет с расширениями?

    • @olegmaestr0
      @olegmaestr0 Месяц назад

      @@pythonclinic Поможет 100%

  • @Xmike499-
    @Xmike499- 3 месяца назад

    24:30 разве? если 2 класса неявно наследуют object, то они не могу быть ромбовидными, ведь object всегда будет последним в иерархии mro, и соответственно поиск будет линейным, а не ромбовидным. Если бы было явное наследование, например, если бы и B() и C() явно были бы унаследованы допустим от А(), то тогда можно было бы говорить о ромбовидности. В Python 3 все классы неявно наследуются от object, но на конкретном тайм-коде не ромбовидная структура. Если было бы так, то не существовало бы не ромбовидных структур

    • @pythonclinic
      @pythonclinic 3 месяца назад

      "то они не могу быть ромбовидными, ведь object всегда будет последним в иерархии mro, и соответственно поиск будет линейным, а не ромбовидным" - всё верно, только причина и следствие перепутаны местами, сначала возникает ромбовидное наследование от object, а потом применяется mro как решение этой проблемы, без mro был бы ромб

  • @fleshka48
    @fleshka48 3 месяца назад

    Ты случайно Бауманку не оканчивал?

    • @pythonclinic
      @pythonclinic 3 месяца назад

      неа, мехмат бгу

  • @schoolboy7921
    @schoolboy7921 3 месяца назад

    Спасибо большое!

  • @АрзыбекАбдырахманов-т5з

    Пушка бомба 🔥🔥 красава. Спасибо большое за такое видео

  • @Xmike499-
    @Xmike499- 3 месяца назад

    чувак, ты можешь объяснить, мне всего лишь нужно знать Допустим: class MyDescriptores: def __get__(self, instanceу, owner): if instanceу is None: return self return f"Доступ к атрибуту через объект {instanceу}, класс {owner}" class MyClass: attr = MyDescriptores() obj = MyClass() print(obj.attr) каким образом в метод __get__ именно в self попадает экземпляр класса MyDescriptores, а в instance попадает экземпляр класса Myclass, а owner ссылается на сам класс Myclass? Мне именно этот момент не понятен. По какому принципу, и по каким механизмам это работает? Буду очень благодарен за обратную связь.

    • @pythonclinic
      @pythonclinic 3 месяца назад

      при обращении к obj.attr автоматически вызывается метод __get__ у дескриптора MyDescriptores. В методе __get__: self - это экземпляр дескриптора, то есть MyDescriptores. instance - это экземпляр класса, к которому принадлежит атрибут, в данном случае obj (экземпляр MyClass). owner - это сам класс, в данном случае MyClass. магия дескрипторов в том, что все эти параметры передаются в сам дескриптор автоматически, можно себе представить такую связь при условии что mc = MyClass(): mc.attr -> mc -> MyClass -> MyDescriptores -> __get__ по дороге как раз собрали ссылки на все нужные объекты

    • @Xmike499-
      @Xmike499- 3 месяца назад

      @@pythonclinic это получается какая-то жестко закодированная структура? self в __get__(self, instance, owner) - это всегда ссылка на экземпляр класса в котором он определен, instance - это всегда ссылка на экземпляр класса из которого этот дескриптор вызывается (Если брать в данном случай, как пример с выше, то это Myclass), и owner это всегда ссылка на класс из которого был вызван этот дескриптор(как в моем примере с выше Myclass)? То есть позиции данных объектов в методе __get__ заранее определены, и с этим ничего нельзя сделать? Допустим, если я захочу чтобы сначала во-второй позиции у меня шла ссылка на класс, а потом уже ссылка на экземпляр класса из которого был вызван этот дескриптор? или допустим я хочу оставить в __get__ 2 параметра, или больше 3 параметров? это заранее ошибка?

    • @pythonclinic
      @pythonclinic 3 месяца назад

      можно придумать, как передать больше аргументов, а вот меньше или поменять местами класс и инстанс - вряд ли

  • @fedorevg7091
    @fedorevg7091 3 месяца назад

    У вас очень монотонная речь почти без увеличения, уменьшения громкости, без пауз. Я начал засыпать на 4-й минуте. При этом информацию даёте очень интересную, полезную, а главное понятную. Спасибо.

  • @romankondratyev4080
    @romankondratyev4080 4 месяца назад

    Круто! Понравилось!

  • @ArntorRUS
    @ArntorRUS 4 месяца назад

    Спасибо большое за объяснение! В дескрипторе можно как-то реализовать логику получения модифицированного атрибута как будто сам obj.__name содержит в себе атрибут? Т.е. как бы вызывал модифицированное имя таким образом zephyrka.name.upper. При этом инстанс имеет только атрибут name.

    • @pythonclinic
      @pythonclinic 3 месяца назад

      да, точно так же как и для обычного геттера

  • @kvas377
    @kvas377 4 месяца назад

    спасибо мужик! Очень доходчиво обьясняешь!

  • @MrSunTrope
    @MrSunTrope 4 месяца назад

    Можно рассмотреть тему протоколов и дженериков?

  • @Antik__
    @Antik__ 4 месяца назад

    Привет! Очень нравится твой контент. Скажи, а все ли переменные хранятся в стеке? Ты привел пример с локальными переменными в функции. Например, переменные, объявленные в глобальной области видимости тоже будут находится в стеке?

    • @pythonclinic
      @pythonclinic 4 месяца назад

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

  • @p.polunin
    @p.polunin 5 месяцев назад

    Спасибо большое! Повторение, мать учения. Так ясно и лаконично!

  • @nicsolov9821
    @nicsolov9821 5 месяцев назад

    Ну конструкция i+=1 - нечего не даст:) Да и разница в скорости между range и list com - несушественно. И у меня исход в пользу list com`a. Как по мне timeit, лучше для замеров.

  • @denismerigold486
    @denismerigold486 5 месяцев назад

    Ютуб пусти! У меня сложилось впечатление, что вы не любите list com, больше, чем я не люблю while(требую его немедленного удаления). Начнём с базы. list com c одним цыклом/условием гораздо читабельнее, чем for. Поговорим о замерах в лекции(Как-же круто, что люди больше использую декотраторы). В чем показатель использования i += 1? Он же нечего не меняет, ну тип: локальные переменные и блаблабла lst = list(range(10)) for i in lst: i+=1 print(lst) #-> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] lst2 = [x+1 for x in lst] print(lst2) #-> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] for i in range(len(lst)): lst[i] += 1 print(lst) #-> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] А вот, если мы будем использовать о конструкциях: append(x+1) и [x +1 for .....], то тут сразу фаваритом становится list_com. Внутренний оптимизации ( быйт код, можно подробнее узнать в ceval.c на python git, могу ошибаться с файлом) Ps. C enumerate почти то же самое.

  • @nachtblume6629
    @nachtblume6629 5 месяцев назад

    Приятно что ты с нами. На твоих видосах уже доехал до мидла, ты - лучший 😍

    • @pythonclinic
      @pythonclinic 5 месяцев назад

      спасибо) очень рад твоему прогрессу)

  • @denismerigold486
    @denismerigold486 5 месяцев назад

    Комент сохранился еееееееееее, это проклятие Новой зеландии, спало.

  • @denismerigold486
    @denismerigold486 5 месяцев назад

    Кстати, вы в курсе, почему комментарий под лекцией про списки не сохраняется?

    • @pythonclinic
      @pythonclinic 5 месяцев назад

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

    • @denismerigold486
      @denismerigold486 5 месяцев назад

      @@pythonclinic Спасибо за ответ!

  • @denismerigold486
    @denismerigold486 5 месяцев назад

    Опа примеры в деньгах

  • @smilekun2825
    @smilekun2825 5 месяцев назад

    Надо же было сравнить с проф версией

    • @pythonclinic
      @pythonclinic 5 месяцев назад

      всё честно, сравниваем бесплатные версии))

    • @smilekun2825
      @smilekun2825 5 месяцев назад

      @@pythonclinic Думаю было бы полезно рассмотреть в контектсе, когда для тебя не проблема купить лицензию. Тем более, получить проф версию очень легко, есть много способов на ютубе

    • @pythonclinic
      @pythonclinic 5 месяцев назад

      в целом можно сделать отдельное видео, да

  • @v1tamin559
    @v1tamin559 5 месяцев назад

    Привет, крутое видео , но может что-то посложнее возьмём. А так очень полезно наверное

    • @pythonclinic
      @pythonclinic 5 месяцев назад

      можно и посложнее) вообще хотелось проверить интерес аудитории к теме более-менее простым обсуждением

  • @Xmike499-
    @Xmike499- 5 месяцев назад

    Долгих лет тебе жизни