Библиотека питониста | Python, Django, Flask
40.5K subscribers
2.78K photos
75 videos
51 files
4.36K links
Все самое полезное для питониста в одном канале.

Список наших каналов: https://t.me/proglibrary/9197

Курс по ML: https://cl

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
📚 Бесплатный вебинар от Skypro

📈 Аналитик данных — кто такой? Погружаемся в профессию с нуля

• Вы узнаете, кто такие аналитики данных и почему это востребованная профессия

• Поймете, как из любой профессии уйти в аналитику данных — даже если не разбираетесь в математике.

• Потренируетесь работать с Excel, сравните скорость и эффективность работы Excel и SQL на конкретном примере

👊🏻Мощный спикерский состав
📆 Время проведения: суббота, 14 августа в 11:00 по МСК.
🚀 Регистрация по ссылке: https://go.skyeng.ru/data_analytics_1408
Делаем многоуровневый словарь плоским при помощи собственной рекурсивной функции

Быстрый поиск в Google приводит нас на StackOverflow. Первый же ответ предлагает рекурсивную функцию, которая перебирает словарь и возвращает «уплощенный» экземпляр. Вдохновившись этой функцией, давайте создадим немного более продвинутую версию.

Можем начать с type hinting (явного указания типов). Это улучшит читаемость и сделает код типобезопасным.
Показатели производительности

Мы можем быстро убедиться, что функция действительно возвращает плоский словарь, но как насчет производительности? Будет ли хорошей идеей использовать этот подход в продакшен-среде? Давайте запустим быстрый замер показателей скорости.

Здесь и во всех дальнейших замерах производительности мы будем пользоваться магической функцией IPython — timeit, а также memit из библиотеки memory_profiler.

P.S. Чтобы функция %memit заработала, сперва нужно запустить %load_ext memory_profiler.
Learning Algorithms: A Programmer's Guide to Writing Better Code (2020)
Автор: George Heineman
Количество страниц: 280

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

Скачать книгу
SOLID-программирование на Python.

https://proglib.io/w/ee870f50
🎼 Переносим треки из Яндекс.Музыки в Spotify с помощью Python

Используя Python и Selenium, получим все плейлисты и альбомы из Яндекс.Музыки, а с помощью библиотеки spotipy перенесем фонотеку в Спотифай.

https://proglib.io/sh/h2ZBCo7sVG
Нелокальная переменная во вложенной функции

Прежде чем перейти к тому, что такое замыкание, мы должны сначала понять, что такое вложенная функция и нелокальная (nonlocal) переменная.

Функция, определенная внутри другой функции, называется вложенной функцией. Вложенные функции могут получать доступ к переменным из локальной области видимости объемлющих функций (enclosing scope).

В Python нелокальные переменные по умолчанию доступны только для чтения. Если нам необходимо их модифицировать, то мы должны объявить их явно как нелокальные (используя ключевое слово nonlocal).
Что такое метаклассы — короткий обзор

Предположим, что вы знаете разницу между классами и объектами. Тогда метаклассы не должны быть для вас слишком уж сложными. Если кратко, то они являются классами для классов (отсюда и «мета» в их названии).

Проще говоря, в то время как классы являются чертежами для объектов, метаклассы являются чертежами для классов. Класс является описанием, когда мы создаем его экземпляр, тогда как метакласс является описанием класса, и существует только когда определен класс.

Самая простая реализация метакласса, которая ничего не делает, выглядит следующим образом
Игра RE:Tail от Х5 Tech
Осторожно! В городе орудует злобный хакер, который сломал все процессы и поставил будущее под угрозу. Мир ждёт суперспеца, настоящего властелина кода, который поможет ритейлерам возродиться. Но кто же этот герой?

Хорошая новость: это не сводка сегодняшних новостей. Новость ещё лучше: выше описание новой онлайн-игры от X5 Tech «Re:tail», в которой именно ты сможешь продемонстрировать своё искусство покорения кода! Каждого участника ждут увлекательные задания с элементами искусственного интеллекта, 7 пасхалок и 1 скрытая мини-игра.

Переходи по ссылке, победи злодея и помоги построить ритейл будущего! https://re-tail.geecko.com
👍1
Что такое *args и kwargs? (ч.1)

Иногда нельзя предсказать, сколько аргументов получит функция. Чтобы обработать их, используются специальные конструкции *args и kwargs
.

На самом деле названия переменных – args, kwargs – это просто соглашение. Важны здесь только звездочки. Они обозначают сборку аргументов в коллекцию (список или словарь). Одна звездочка предназначена для обычных аргументов, две – для именованных.
🔥1
Чему бы вы хотели научиться?
👍9
Что такое *args и kwargs? (ч.2)

Можно заменить *args на *vars, а kwargs на options или другое слово. Программа будет работать корректно, но другие разработчики могут вас не понять.

Конструкции *args и kwargs можно использовать как самостоятельно, так и в комбинации с любым количеством обычных аргументов. Например, в коде выше первый параметр farg обрабатывается отдельно, а все остальные собираются в коллекцию.
👍1