📚 Бесплатный вебинар от Skypro
📈 Аналитик данных — кто такой? Погружаемся в профессию с нуля
• Вы узнаете, кто такие аналитики данных и почему это востребованная профессия
• Поймете, как из любой профессии уйти в аналитику данных — даже если не разбираетесь в математике.
• Потренируетесь работать с Excel, сравните скорость и эффективность работы Excel и SQL на конкретном примере
👊🏻Мощный спикерский состав
📆 Время проведения: суббота, 14 августа в 11:00 по МСК.
🚀 Регистрация по ссылке: https://go.skyeng.ru/data_analytics_1408
📈 Аналитик данных — кто такой? Погружаемся в профессию с нуля
• Вы узнаете, кто такие аналитики данных и почему это востребованная профессия
• Поймете, как из любой профессии уйти в аналитику данных — даже если не разбираетесь в математике.
• Потренируетесь работать с Excel, сравните скорость и эффективность работы Excel и SQL на конкретном примере
👊🏻Мощный спикерский состав
📆 Время проведения: суббота, 14 августа в 11:00 по МСК.
🚀 Регистрация по ссылке: https://go.skyeng.ru/data_analytics_1408
Делаем многоуровневый словарь плоским при помощи собственной рекурсивной функции
Быстрый поиск в Google приводит нас на StackOverflow. Первый же ответ предлагает рекурсивную функцию, которая перебирает словарь и возвращает «уплощенный» экземпляр. Вдохновившись этой функцией, давайте создадим немного более продвинутую версию.
Можем начать с type hinting (явного указания типов). Это улучшит читаемость и сделает код типобезопасным.
Быстрый поиск в Google приводит нас на StackOverflow. Первый же ответ предлагает рекурсивную функцию, которая перебирает словарь и возвращает «уплощенный» экземпляр. Вдохновившись этой функцией, давайте создадим немного более продвинутую версию.
Можем начать с type hinting (явного указания типов). Это улучшит читаемость и сделает код типобезопасным.
Показатели производительности
Мы можем быстро убедиться, что функция действительно возвращает плоский словарь, но как насчет производительности? Будет ли хорошей идеей использовать этот подход в продакшен-среде? Давайте запустим быстрый замер показателей скорости.
Здесь и во всех дальнейших замерах производительности мы будем пользоваться магической функцией IPython — timeit, а также memit из библиотеки memory_profiler.
P.S. Чтобы функция %memit заработала, сперва нужно запустить %load_ext memory_profiler.
Мы можем быстро убедиться, что функция действительно возвращает плоский словарь, но как насчет производительности? Будет ли хорошей идеей использовать этот подход в продакшен-среде? Давайте запустим быстрый замер показателей скорости.
Здесь и во всех дальнейших замерах производительности мы будем пользоваться магической функцией IPython — timeit, а также memit из библиотеки memory_profiler.
P.S. Чтобы функция %memit заработала, сперва нужно запустить %load_ext memory_profiler.
Cornell: Мок-сервер записи и воспроизведения для сквозного тестирования.
https://proglib.io/w/9d085065
https://proglib.io/w/9d085065
GitHub
GitHub - hiredscorelabs/cornell: Cornell - record & replay mock server
Cornell - record & replay mock server. Contribute to hiredscorelabs/cornell development by creating an account on GitHub.
Learning Algorithms: A Programmer's Guide to Writing Better Code (2020)
Автор: George Heineman
Количество страниц: 280
Каждый профессионал в области программного обеспечения должен иметь эффективные практические знания об алгоритмах. В этой книге автор дает краткие и информативные описания ключевых алгоритмов, способных улучшить ваш код на всех языках. Разработчики программного обеспечения, тестировщики и специалисты по поддержке кода узнают, как творчески решать вычислительные задачи с помощью алгоритмов.
Скачать книгу
Автор: George Heineman
Количество страниц: 280
Каждый профессионал в области программного обеспечения должен иметь эффективные практические знания об алгоритмах. В этой книге автор дает краткие и информативные описания ключевых алгоритмов, способных улучшить ваш код на всех языках. Разработчики программного обеспечения, тестировщики и специалисты по поддержке кода узнают, как творчески решать вычислительные задачи с помощью алгоритмов.
Скачать книгу
Telegram
Книги для программистов (reserved)
Learning Algorithms: A Programmer's Guide to Writing Better Code (2020)
Автор: George Heineman
Автор: George Heineman
🎼 Переносим треки из Яндекс.Музыки в Spotify с помощью Python
Используя Python и Selenium, получим все плейлисты и альбомы из Яндекс.Музыки, а с помощью библиотеки spotipy перенесем фонотеку в Спотифай.
https://proglib.io/sh/h2ZBCo7sVG
Используя Python и Selenium, получим все плейлисты и альбомы из Яндекс.Музыки, а с помощью библиотеки spotipy перенесем фонотеку в Спотифай.
https://proglib.io/sh/h2ZBCo7sVG
Нелокальная переменная во вложенной функции
Прежде чем перейти к тому, что такое замыкание, мы должны сначала понять, что такое вложенная функция и нелокальная (nonlocal) переменная.
Функция, определенная внутри другой функции, называется вложенной функцией. Вложенные функции могут получать доступ к переменным из локальной области видимости объемлющих функций (enclosing scope).
В Python нелокальные переменные по умолчанию доступны только для чтения. Если нам необходимо их модифицировать, то мы должны объявить их явно как нелокальные (используя ключевое слово nonlocal).
Прежде чем перейти к тому, что такое замыкание, мы должны сначала понять, что такое вложенная функция и нелокальная (nonlocal) переменная.
Функция, определенная внутри другой функции, называется вложенной функцией. Вложенные функции могут получать доступ к переменным из локальной области видимости объемлющих функций (enclosing scope).
В Python нелокальные переменные по умолчанию доступны только для чтения. Если нам необходимо их модифицировать, то мы должны объявить их явно как нелокальные (используя ключевое слово nonlocal).
Что такое метаклассы — короткий обзор
Предположим, что вы знаете разницу между классами и объектами. Тогда метаклассы не должны быть для вас слишком уж сложными. Если кратко, то они являются классами для классов (отсюда и «мета» в их названии).
Проще говоря, в то время как классы являются чертежами для объектов, метаклассы являются чертежами для классов. Класс является описанием, когда мы создаем его экземпляр, тогда как метакласс является описанием класса, и существует только когда определен класс.
Самая простая реализация метакласса, которая ничего не делает, выглядит следующим образом
Предположим, что вы знаете разницу между классами и объектами. Тогда метаклассы не должны быть для вас слишком уж сложными. Если кратко, то они являются классами для классов (отсюда и «мета» в их названии).
Проще говоря, в то время как классы являются чертежами для объектов, метаклассы являются чертежами для классов. Класс является описанием, когда мы создаем его экземпляр, тогда как метакласс является описанием класса, и существует только когда определен класс.
Самая простая реализация метакласса, которая ничего не делает, выглядит следующим образом
Игра RE:Tail от Х5 Tech
Осторожно! В городе орудует злобный хакер, который сломал все процессы и поставил будущее под угрозу. Мир ждёт суперспеца, настоящего властелина кода, который поможет ритейлерам возродиться. Но кто же этот герой?
Хорошая новость: это не сводка сегодняшних новостей. Новость ещё лучше: выше описание новой онлайн-игры от X5 Tech «Re:tail», в которой именно ты сможешь продемонстрировать своё искусство покорения кода! Каждого участника ждут увлекательные задания с элементами искусственного интеллекта, 7 пасхалок и 1 скрытая мини-игра.
Переходи по ссылке, победи злодея и помоги построить ритейл будущего! https://re-tail.geecko.com
Осторожно! В городе орудует злобный хакер, который сломал все процессы и поставил будущее под угрозу. Мир ждёт суперспеца, настоящего властелина кода, который поможет ритейлерам возродиться. Но кто же этот герой?
Хорошая новость: это не сводка сегодняшних новостей. Новость ещё лучше: выше описание новой онлайн-игры от X5 Tech «Re:tail», в которой именно ты сможешь продемонстрировать своё искусство покорения кода! Каждого участника ждут увлекательные задания с элементами искусственного интеллекта, 7 пасхалок и 1 скрытая мини-игра.
Переходи по ссылке, победи злодея и помоги построить ритейл будущего! https://re-tail.geecko.com
👍1
Что такое *args и kwargs? (ч.1)
Иногда нельзя предсказать, сколько аргументов получит функция. Чтобы обработать их, используются специальные конструкции *args и kwargs.
На самом деле названия переменных – args, kwargs – это просто соглашение. Важны здесь только звездочки. Они обозначают сборку аргументов в коллекцию (список или словарь). Одна звездочка предназначена для обычных аргументов, две – для именованных.
Иногда нельзя предсказать, сколько аргументов получит функция. Чтобы обработать их, используются специальные конструкции *args и kwargs.
На самом деле названия переменных – args, kwargs – это просто соглашение. Важны здесь только звездочки. Они обозначают сборку аргументов в коллекцию (список или словарь). Одна звездочка предназначена для обычных аргументов, две – для именованных.
🔥1
Библиотека питониста | Python, Django, Flask pinned «Чему бы вы хотели научиться?»
Что такое *args и kwargs? (ч.2)
Можно заменить *args на *vars, а kwargs на options или другое слово. Программа будет работать корректно, но другие разработчики могут вас не понять.
Конструкции *args и kwargs можно использовать как самостоятельно, так и в комбинации с любым количеством обычных аргументов. Например, в коде выше первый параметр farg обрабатывается отдельно, а все остальные собираются в коллекцию.
Можно заменить *args на *vars, а kwargs на options или другое слово. Программа будет работать корректно, но другие разработчики могут вас не понять.
Конструкции *args и kwargs можно использовать как самостоятельно, так и в комбинации с любым количеством обычных аргументов. Например, в коде выше первый параметр farg обрабатывается отдельно, а все остальные собираются в коллекцию.
👍1