Рекурсия в Python
52:13
2 ай бұрын
Основы Asyncio
53:25
3 ай бұрын
Список и кортеж
37:46
Пікірлер
@GRECHKA230
@GRECHKA230 Күн бұрын
Почему ты мне раньше не попадался? Теперь только твои уроки по питону смотрю.
@PythonRussian
@PythonRussian Күн бұрын
не знаю)) вопросы к ютубу, я не прятался
@Developer_python_
@Developer_python_ Күн бұрын
в logger.debug f строки работают
@dianaivanova8803
@dianaivanova8803 Күн бұрын
Можно ли использовать логирование, чтобы отслеживать статистку для дальнейшего анализа? Например количество вызова какой-то команды пользователем в боте, какое-то может количество запросов, количество новых пользователей (т.е например загрузить потом логи в pandas)? Видео, как всегда 🔥🔥
@PythonRussian
@PythonRussian Күн бұрын
да, конечно. По сути логирование это просто фиксация каких то моментов в системе, а кто и как будет информацию полученную использовать - это уже не выбор пользователя. Можно для отладки, можно просто для инфы, для статистики, для сбора и анализа данных и т.д.
@kirichenkodv
@kirichenkodv Күн бұрын
Крутяк! Лучшее видео про логирование
@kjshdudnjdhdbdjdjxfxy
@kjshdudnjdhdbdjdjxfxy 2 күн бұрын
Лучший
@user-oi5hk5gl3o
@user-oi5hk5gl3o 3 күн бұрын
Большой молодец! Спасибо за объяснение доступным языком.
@amalshakov
@amalshakov 5 күн бұрын
Спасибо. 3 дня смотрю про асинхронку. У вас очень хорошо получилось!
@amalshakov
@amalshakov 5 күн бұрын
Я новичок в АП. Объясните, вы говорите, что await - это явный флаг, мол я потуплю, а ты иди работай дальше пока. Окей, тогда с этой логикой, если бы было просто sleep(3), понятно, интерпретатор ждет. и с вашей же логикой, если добавить await sleep(3), то должно все получится, ну мы же сказали интерпретатору, что эта функция кортуина (async), в ней указали await sleep(3). Почему это не работает? Я не понимаю. Ps: ааа...досмотрел до конца вроде понял, это типа все блокирующие опрерации - просто sleep, просто родной request (у них под капотом нет await), а asyncio.sleep и aiohttp у них под капотом есть тот самый await. Хотя не до конца все это мне понятно). Ну с requests/aiohttp более менее понятно. Но со sleep нет.
@stic5819
@stic5819 5 күн бұрын
Здравствуйте, у вас отличные видео! Не думали ли разбавить канал смежными технологиями для работы питонистом: Celery, RabbitMQ, БД (NoSQL (Redis), SQL (PostgreSQL)), Архитектурные видео, системы логирования, devops базу, rest ful (типа про сети рассказать), такое вот?
@PythonRussian
@PythonRussian 5 күн бұрын
я стараюсь снимать на максимально широкий круг питонистов, если уходить в специфическую тему, то многим станет не нужно\не интересно. Но кстати можно подумать про бд/хттп это обычно везде нужно
@stic5819
@stic5819 5 күн бұрын
@@PythonRussian Такого качественного контента немного)) кажется, что может случится обратная ситуация с потоком людей, хотя вам виднее
@pLop6912
@pLop6912 5 күн бұрын
Огромное спасибо, появилось понимае как все это работает, но все же вопрос задам, есть библиотека PyQt5 она единственная выполняет нужное мне создание интерфейса ни одна другая его повторить не смогла но она блокирует карутины, можно ли это ка кто обойти и запустить окно без блокировки остальных карутин?
@PythonRussian
@PythonRussian 5 күн бұрын
я не знаю конкретно эту библиотеку, но точно знаю что все графические либы имеют встроенный, верный механизм работы с фоновыми задачами, вот это тебе надо поискать и изучить. Скорее всего это отдельные потоки, но может быть и асинхронка, просто надо посмотреть как сами создатели рекомендуют это делать. Чтобы самому велосипеды не придумывать
@pLop6912
@pLop6912 5 күн бұрын
@@PythonRussian Спасибо, за объяснение буду искать, жаль идея в том что граф интерфейс побочная история проекта скажем так важный но не обязательный модуль, и в таком ключе делать его основой с фоновыми задачами не сильно подходит.
@victoramartov1916
@victoramartov1916 5 күн бұрын
Спасибо за ваш труд.
@BaDiTaRaKaN
@BaDiTaRaKaN 6 күн бұрын
Наконец-то я понял, что такое асинхронное программирование. Спасибо большое
@user-mz6js2sw6d
@user-mz6js2sw6d 6 күн бұрын
супер. спасибо.
@vladimirIvanov-ut9fo
@vladimirIvanov-ut9fo 7 күн бұрын
Сделал все, чтоб ты был рад - лайк, подписка и донат!) Думаю, прикрученный юсдт-кош увеличит тебе монетизацию Уроки отличные, без всяких "но" Если возможно сделать маркировку по сложности тем как-нибудь - было бы удобно. Я посмотрел все, где у меня были пробелы.Коммент пишу перед просмотром, не зная абсолютно что такое рекурсия.И какой базовый объем знаний нужен для освоения.И если бы был флаг сложности или цифровой последовательности(урок 39, к примеру) может это для продвинутых - я бы пошел смотреть инфу полегче,а к этому вернулся позже.Но все на твое усмотрение - просто фидбэк
@PythonRussian
@PythonRussian 7 күн бұрын
понял, спасибо, наверное разделим по плейлистам или подумаем про какую то маркировку, это надо сделать понятно для всех.
@user-ro3zm3vn1m
@user-ro3zm3vn1m 7 күн бұрын
Сделайте видео про библиотеки abc и future, пожалуйста. И расскажите про абстрактные классы
@PythonRussian
@PythonRussian 7 күн бұрын
в список себе добавил, но это не быстро будет
@Kalips9
@Kalips9 7 күн бұрын
спасибо)
@alexeysolovjoff5241
@alexeysolovjoff5241 7 күн бұрын
Если кому-то интересно, то в нижней половине экрана слева есть кнопочка 'Soft-Wrap', которая позволяет избежать долгой и унылой прокрутки экрана вправо.
@ivanartemenko7896
@ivanartemenko7896 7 күн бұрын
Поправочка, logger переваривает Ф-строки
@PythonRussian
@PythonRussian 7 күн бұрын
да, оговорка, в закрепленном комменте поправился
@memantulov
@memantulov 8 күн бұрын
Почему мы не можем использовать f-string в логинге?
@PythonRussian
@PythonRussian 8 күн бұрын
да, это я оговорился, можем конечно, но не рекомендуется, сейчас напишу об этом в закрепленном комменте
@memantulov
@memantulov 8 күн бұрын
@@PythonRussian теперь понятно. Спасибо за разъяснение. Теперь надо всё переделывать...
@user-sw3hr9nu5b
@user-sw3hr9nu5b 8 күн бұрын
по названию видоса, я подумал, что в очередной раз подразумевается "кончай юзать принт, переходи на нашу супер СаВрЕмЕнНуЮ новую либу, она вабще крутая, а ещё она модная и ей все гиганты пользуются, да еще и она новый стандарт индустрии" (которая на самом деле напичкана мусором и вообще работает хорошо только на чем-то мощном)
@PythonRussian
@PythonRussian 8 күн бұрын
нет, я только о стандартной библиотеке рассказываю, коммерческие решения каждый пусть ищет сам вместе с указанными вами проблемами.
@yMPu_CK0T
@yMPu_CK0T 8 күн бұрын
Python Is Not russian, Try To Understand!
@databox4279
@databox4279 9 күн бұрын
как всегда: контент пушка вышка. Огромная благодарность за труды.
@senser1o76
@senser1o76 9 күн бұрын
Секрет полишенеля
@alexeysolovjoff5241
@alexeysolovjoff5241 9 күн бұрын
Домашку сделал по декоратору, который измеряет время работы программы.. Проверил заодно listcomps и genexp. Создаю список из чисел от 1 до 9,999,999 с помощью listcomps и вывожу на экран первые и последние элементы списка: nb_char = 10_000_000 список: [str(i) for i in range(nb_char)] Время на создание списка 0.8421957492828369 сек 0 1 2 3 4 9999996 9999997 9999998 9999999 Время на перебор списка 17.011529684066772 сек Размер объекта 89,095,160 байт Создаю генератор из чисел от 1 до 9,999,999 с помощью genexp и вывожу на экран первые и последние элементы генератора: генератор: (str(i) for i in range(nb_char)) Время на создание генератора 0.0 сек 0 1 2 3 4 9999996 9999997 9999998 9999999 Время на перебор генератора 23.232866048812866 сек Размер объекта 208 байт Резюме: генератор память не тратит, но медленнее в обработке, что в общем-то логично. Также генератор не тратит время на своё создание. Вывод: если есть возможность грузить структуру в память, то надо делать список, если такой возможности нет, то надо делать генератор.
@user-bn4kd5iw8n
@user-bn4kd5iw8n 10 күн бұрын
Отличный урок. Все по полкам разложено, чувствуется рука мастера!)
@KiryxaKartIT
@KiryxaKartIT 10 күн бұрын
Хахппх, я серьезно подумал про то, что разработчики уже делают 4ый питон. А я то и думаю, что за странные фишки. Но на самом деле веб запросы прямо вот так очень полезны, возможно не для всех, но было бы круто. Вкупил только когда решил почитать коммы ахахах
@PythonRussian
@PythonRussian 10 күн бұрын
да, про запросы согласен, сам бы е отказался от такого инструмента
@junior_analyst
@junior_analyst 11 күн бұрын
А как логировать асинхронный код?
@PythonRussian
@PythonRussian 11 күн бұрын
точно также, docs.python.org/3/library/asyncio-dev.html#logging
@immortal8038
@immortal8038 11 күн бұрын
чувак, спасибо, прям в точку по проблеме этой попал, красавчик)
@user-tv9xp7uf6z
@user-tv9xp7uf6z 11 күн бұрын
какой ты красавчик!!! очень четко все обьяснил!
@__username__
@__username__ 11 күн бұрын
We need to go deeper. Посмотрите на Гитхабе модуль loguru для "максимально простого использования логов".
@Akim_Edmundovich
@Akim_Edmundovich 11 күн бұрын
Спасибо огромное!)
@Chanel_for_CODE
@Chanel_for_CODE 11 күн бұрын
Отличная подача! В преподаватели бы))))
@PythonRussian
@PythonRussian 11 күн бұрын
не, для этого призвание нужно, а я для удовольствия делюсь по мере времени свободного. Хотя может на пенсии и запилю курсик)
@1980zeit
@1980zeit 11 күн бұрын
прошло 3 года, а это видео до сих пор лучшее и по сути единственно адекватное по теме Git в PyCharm... Copilot не даст соврать.
@PythonRussian
@PythonRussian 11 күн бұрын
просто у всех желание учить писать заклятья в терминалы)))
@alexeysolovjoff5241
@alexeysolovjoff5241 11 күн бұрын
Если будет желание, напишите, пожалуйста, в каких случаях надо переходить к созданию пакетов, а не модулей. Т.е. у меня есть какой-то проект, в нём куча модулей, в каждом модуле куча классов, процедур и т.д. Вопрос, зачем их группировать в пакеты, если они уже вполне логично и функционально сгруппированы в модули?
@PythonRussian
@PythonRussian 11 күн бұрын
группировка в пакеты по той же причине, по какой ты группируешь и в модули - относятся к какой то теме. Ты сгруппировал предложения в главу, главы в часть, части в книгу) Это конечно не всегда нужно, но в сложно проекте обычно каждые 3-5-7 модулей относятся к чему то конкретному, например работа с клиентом, выносим в /client . Просто чтобы не было в одной папке десятков модулей. Надо подумать в какой теме про это рассказать.
@alexeysolovjoff5241
@alexeysolovjoff5241 11 күн бұрын
@@PythonRussian Во-первых, спасибо за ответ. Во-вторых, да, понятно, что пакеты - это следующий уровень организации кода. Возможно есть какие-то хорошие практики, которые как-то регламентируют это дело или дают признаки того, что надо уже создавать пакеты, иначе получишь в одной папочке море модулей , в котором очень быстро утонешь.
@crazzy6903
@crazzy6903 11 күн бұрын
Такое ощущение как будто рассказывается для дегенератов. Повторяется что то очевидно по сто раз. Терминология по типу замораживатель времени вообще меня убила Спасибо!
@PythonRussian
@PythonRussian 11 күн бұрын
а главное -это работает )))
@Akim_Edmundovich
@Akim_Edmundovich 12 күн бұрын
Спасибо тебе большое! 😊
@GRECHKA230
@GRECHKA230 12 күн бұрын
Замыкание - это вор, который запоминает местонахождение дома и грабит его.
@PythonRussian
@PythonRussian 12 күн бұрын
хехе, неплохо =)
@donatelmrlybarskiy6171
@donatelmrlybarskiy6171 13 күн бұрын
Пушка брат
@user-qz6gd6qv4p
@user-qz6gd6qv4p 13 күн бұрын
Спасибо!)
@fixcay7129
@fixcay7129 13 күн бұрын
Хорошая подача материала, все понятно!
@nerdizay
@nerdizay 13 күн бұрын
Ну ёптить. Сегодня 28 мая.
@PythonRussian
@PythonRussian 13 күн бұрын
да, вы немного задержались =)
@user-qz6gd6qv4p
@user-qz6gd6qv4p 13 күн бұрын
великолепно!
@kishiva4965
@kishiva4965 13 күн бұрын
Крутое видео, спасибо! Правильно ли я понимаю, что в асинке не получится перемешать синхронные функции и асинхронные? Например у меня есть 6 функций обращений к разным внешним ресурсам по апи, но вызываются они в разное время синхронными функциями, получается чтобы воспользоваться благами асинхронности, мне придётся вызывать все асинхронные функции обращений одной асинхронной main функцией разом в одном моменте, а уже потом проводить все остальные синхронные манипуляции?
@PythonRussian
@PythonRussian 13 күн бұрын
перемешивать не надо, асинка будет ждать полного выполнения синхронной функции, Но у асинкио есть специальные методы - запуск в отдельном потоке и в отдельном процессе, возможно это поможет вам решить вашу задачу. Или подумать о полной замене всего синхронного на асинк-варианты
@MrPavel1207
@MrPavel1207 13 күн бұрын
спасибо!
@learningmeansdoing
@learningmeansdoing 14 күн бұрын
Полезная информация, спасибо!
@gsm7490
@gsm7490 14 күн бұрын
А можно сделать Cat.__slots__ += (“say_meaow”,) ?
@pvarankin
@pvarankin 14 күн бұрын
а вы точно работаете программистами ? прямо за деньги ? )) я вот тут писал более-менее большой проект, где делил функции по файлам. и в каждой функции есть необязательный параметр debug. дальше if debug: print) если функция вызывается из __main__, то там дебаг стоит в true, если из основного файла, то false. получается у меня отладка идет с принтами, а в проде никаких лишних сообщений)
@PythonRussian
@PythonRussian 13 күн бұрын
точно. А вот вы видимо невнимательно смотрели, ваше решение неудобное. Что если часть инфы нам стала нужна, а не вся (пример с INFO)? Как поменять формат даты и есть ли он там? Как начать писать в файл? Одному то с таким работать куда ни шло, а в любой компании, где есть и другие программисты надо о поддержке думать. Я не говорю про лишний аргумент в каждой(!) функции.
@pvarankin
@pvarankin 13 күн бұрын
@@PythonRussian не, что откатывать удобнее не спорю. про уровни - ну сделать еще одну переменную)) я просто дебажу и тестирую каждую функцию отдельно, а потом выключаю логи почти совсем) в результате видно ок или не ок.
@PlayTheGames2
@PlayTheGames2 9 күн бұрын
​@@PythonRussianя вообще собственный класс логгера делал, тоже самое что и этот модуль, только убрал ненужный мне функционал
@PlayTheGames2
@PlayTheGames2 9 күн бұрын
я вот только задаюсь вопросом, как в logging цвета текста настраивать
@PythonRussian
@PythonRussian 9 күн бұрын
@@PlayTheGames2 это может быть простым решением, когда работаешь один. С другой стороны а зачем делать то, что уже есть? Ну и такое решение вряд ли оценит команда программистов - логгинг они знают или должны знать, а вот ваш класс нет.
@alonedany
@alonedany 14 күн бұрын
Спасибо!
@aquabogira
@aquabogira 14 күн бұрын
Python Russian, Продолжайте в том же духе, ВЫ МОЛОДЕЦ! Огромное спасибо за такой детальный подход к объяснению этой темы. Особо хочу отметить структуру подачи материала - каждый шаг был логичен и последователен, что позволило легко усваивать информацию.
@Oleg50600
@Oleg50600 14 күн бұрын
Я думал будет что то еще более изящное. Но нет. Всё равно надо засорять код строчками print или logger
@PythonRussian
@PythonRussian 14 күн бұрын
это кстати интересная идея -логгер без изменения логики кода
@Oleg50600
@Oleg50600 14 күн бұрын
@@PythonRussian да. Как прекрасен был бы код без строк для отладки