28154
Обучающий канал по Python Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy По всем вопросам @valentin_mascarov Реклама на бирже - https://telega.in/c/Python_per_month
🔍Тестовое собеседование на Middle Python-разработчика в четверг
22 мая(в четверг) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.
Собес проведет Вадим Пуштаев, ex. head of backend в 💙, автор канала @pythonetc, архитектор в европейской компании
Как это будет:
📂 Вадим будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Вадим будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Вадиму
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot
Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2Vtzqxf5Xvt
➡️ Преобразование двух списков в словарь
Предположим, у нас имеется два списка. Один из них содержит имена студентов, а второй — их оценки. Как преобразовать эти два списка в словарь?
✔️ Для решения задачи можно прибегнуть к функции zip().
Python Learning 👩💻
⚙️ Оптимизация памяти в Python: Использование генераторов вместо списков
Когда мы работаем с большими наборами данных, важно помнить об эффективном использовании памяти. Одной из полезных фишек Python для оптимизации памяти является использование генераторов вместо списков.
➡️ Пример кода
Допустим, у нас есть задача найти квадраты чисел от 1 до 1 000 000. Сначала посмотрим, как это сделать с помощью списка:
# Плохая практика: использование списка
squares = [x**2 for x in range(1, 1000001)]
# Лучшая практика: использование генератора
squares = (x**2 for x in range(1, 1000001))
➡️ PyForest: Один импорт для всех важных модулей
Импортируйте все ключевые библиотеки Python одной строкой. Это удобно для всех ваших проектов по Data Science и при создании нового окружения в Conda.
🗣️ При работе с данными вы используете библиотеки, такие как pandas, matplotlib, seaborn, numpy и sklearn. Прежде чем приступить к работе, нужно их импортировать.
Библиотека решает несколько проблем:
• Однообразие: импорт всегда одинаковый и скучный.
• Пропущенные импорты мешают работе.
• Иногда нужно искать точные строки импорта, например, import matplotlib.pyplot as plt или from sklearn.ensemble import GradientBoostingRegressor.
🔗 Ссылочка на доку
Python Learning 👩💻
⚙️ Использование функции sorted()
В Python очень легко сортировать некие последовательности данных с использованием встроенной функции sorted(), которая берёт на себя решение всех сопутствующих задач.
🗣️ Эта функция сортирует любые последовательности (списки, кортежи) и всегда возвращает список с отсортированными элементами. Рассмотрим пример сортировки списка чисел в порядке возрастания:
sorted([3,5,2,1,4]) # [1, 2, 3, 4, 5]
sorted(['france', 'germany', 'canada', 'india', 'china'], reverse=True) # ['india', 'germany', 'france', 'china', 'canada']
⚙️ Asyncio для работы с асинхронным кодом
ℹ️ Разработчики Python по всему миру используют библиотеку asyncio для написания параллельного кода с помощью синтаксиса async/await.
🗣️ Библиотека asyncio больше всего подходит для кода, который связан с вводом-выводом, а также для высокоуровневого структурированного сетевого кода.
🔗 Ссылочка на доку
Python Learning 👩💻
🧑🏻💻Хотите глубже понять Python и научиться использовать абстрактные классы и протоколы для создания более гибких и поддерживаемых приложений?
Присоединяйтесь к открытому вебинару 13 мая в 20:00 МСК, где мы разберём абстрактные классы и протоколы в Python. Вы научитесь создавать и применять их с помощью модуля abc, улучшая архитектуру ваших проектов.
Углубление знаний в ООП поможет вам писать более структурированный и расширяемый код, который станет основой для успешных проектов. Понимание абстракции — ключ к более высокому уровню разработки.
👉Регистрируйтесь и получите скидку на большую программу обучения "Python Developer. Basic": https://otus.pw/AMrK/Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
⚙️ pickle для быстрого и эффективного хранения
ℹ️ Точно так же, как размеры наборов данных становятся всё больше и больше, растут и наши потребности в их более быстром и эффективном хранении. Одной из альтернатив плоским CSV-файлам, которые поставляются с вашей установкой Python, является формат файла pickle.
🗣️ На самом деле он примерно в 80 раз быстрее CSV при вводе-выводе и занимает меньше памяти.
🔗 Ссылочка на доку
Python Learning 👩💻
⚙️ sqlite3 для специалистов по данным и инженеров
ℹ️ К радости специалистов по данным и инженеров, Python поставляется со встроенной поддержкой баз данных и SQL через библиотеку sqlite3.
Просто подключитесь к любой базе данных (или создайте её) с помощью объекта подключения и запускайте SQL-запросы.
🔗 Ссылочка на доку
Python Learning 👩💻
⚙️ Requests для генерации HTTP-запросов
ℹ️ Библиотека упрощает генерацию HTTP-запросов к другим сервисам, помогает писать их очень просто и быстро.
Код получается лаконичным, а запрос легко настроить и отправить. Поддерживает множество функций и написана понятным языком.
🔗 Ссылочка на доку
Python Learning 👩💻
⌛ Что будет выведено при выполнении кода?
Пояснение ⬇️
__eq__ переопределён, но __hash__ нет, поэтому объекты считаются разными в set, несмотря на сравнение через value. В множестве два элемента — ответ 2.
⚙️ faulthandler.dump_traceback_laterfaulthandler.dump_traceback_later планирует автоматический вывод стека вызовов через заданное количество секунд. Это полезно для отладки зависших программ, бесконечных циклов или неожиданных блокировок
Python Learning 👩💻
🚫 Антипаттерн недели: except: без указания типа исключения
В Python использование except: без типа перехватывает все ошибки, включая системные (KeyboardInterrupt, SystemExit). Это может затруднить отладку и скрыть критические проблемы.
✔️ Всегда явно указывайте тип исключения.
Python Learning 👩💻
⚙️ codecs.iterdecodecodecs.iterdecode поэлементно декодирует поток байтов в текст, используя заданную кодировку. Это полезно для обработки больших файлов или потоков в ограниченной памяти, без загрузки всего содержимого
Python Learning 👩💻
🧑🏻💻Хотите писать гибкий и читаемый код на Python? Пора раскрыть скрытые возможности встроенной библиотеки!
На открытом вебинаре 23 апреля в 20:00 мск мы познакомим вас с мощными инструментами стандартной библиотеки Python, которые сэкономят ваше время и помогут писать код без лишних зависимостей. Вы узнаете, как использовать модули, которые оптимизируют работу с данными, текстом и логированием.
Мы поговорим о модулях collections, re и logging — встроенных инструментах, которые делают код компактным и понятным. Это важный шаг к переходу на более высокие позиции в разработке.
⚡️Присоединяйтесь к открытому вебинару и получите скидку на большой курс "Python Developer. Basic": https://otus.pw/EoxC/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
➡️ Использование коллекций Python
Коллекции Python — это контейнерные типы данных. В частности, это списки, множества, кортежи, словари. Модуль collections даёт в распоряжение разработчика высокопроизводительные типы данных, которые помогают улучшить код, сделать его чище и облегчить работу с ним. Этот модуль содержит множество полезных методов. Здесь мы рассмотрим метод Counter().
Этот метод принимает итерируемый объект, такой, как список или кортеж, и возвращает словарь, содержащий сведения о количестве различных объектов в исследуемом списке (Counter Dictionary). Ключами такого словаря являются уникальные элементы, представленные в итерируемом объекте, а значениями — количества таких элементов.
Counter()
🏎💨Не позволяйте вашим приложениям терять скорость! Обрабатывайте задачи эффективно с FastAPI.
Узнайте, как фоновые задачи могут повысить отзывчивость вашего приложения.
Освойте FastAPI и научитесь улучшать производительность приложений. Повышение скорости ответа и снижение нагрузки — это реально.
⚡️Присоединяйтесь к открытому вебинару 20 мая в 20:00 мск и получите скидку на большое обучение «Python Developer. Basic»: https://otus.pw/yjXt/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
➡️ clean-text для нормализации и очистки текста
Отличный однострочный код для нормализации и очистки текста — идеально для проектов по обработке естественного языка.
Контент, созданный пользователями в Интернете и в социальных сетях, часто бывает грязным. Предварительно обработайте свои данные с помощью clean-text, чтобы создать нормализованное текстовое представление. Например, преобразуйте этот испорченный ввод:
A bunch of \\u2018new\\u2019 references, including [Moana](https://en.wikipedia.org/wiki/Moana_%282016_film%29).
»Yóù àré rïght <3!«
A bunch of 'new' references, including [moana](<URL>).
"you are right <3!"
⚙️ Chainer для построения и обучения нейронных сетей
ℹ️ Мощный и гибкий инструмент Python для построения и обучения глубоких нейронных сетей. Библиотека Chainer была разработана японской компанией Preferred Networks.
🔗 Ссылочка на доку
Python Learning 👩💻
⚙️ secrets для генерации случайных чисел и символов
ℹ️ Хотя реализовать свои собственные функции кодирования сообщений может быть очень весело, они, вероятно, не будут соответствовать тем же стандартам, что и проверенные в боевых условиях функции в библиотеке secrets.
🗣️ Там вы найдёте всё необходимое для генерации случайных чисел и символов для самых сложных паролей, токенов безопасности и связанных с ними секретов.
🔗 Ссылочка на доку
Python Learning 👩💻
DeepChem
DeepChem — это библиотека Python с открытым исходным кодом, которая использует методы глубокого обучения для решения задач в области химии, биологии и материаловедения.
DeepChem позволяет прогнозировать различные свойства молекул, такие как их активность, растворимость, токсичность и т.д., используя методы машинного обучения.
Также библиотека может использоваться для быстрого и эффективного поиска потенциальных лекарственных средств из больших библиотек соединений.
DeepChem может генерировать новые молекулы с заданными свойствами, что может быть полезно для разработки новых материалов и лекарств.
Python Learning 👩💻
⚙️ PaddleOCR для оптического распознавания символов
ℹ️ PaddleOCR — многоязычные наборы инструментов OCR на основе DL-фреймворка PaddlePaddle.
🗣️ Поддержка обучения и развертывания на серверных, мобильных, встроенных устройствах и IoT
🔗 Ссылочка на доку
Python Learning 👩💻
⚙️ itertools для итерации более чем одного итерируемого объекта
ℹ️ Если вы когда-нибудь оказывались в ситуации, когда вы пишете вложенные циклы или сложные функции для итерации более чем одного итерируемого объекта, проверьте, есть ли нужная функция в библиотеке itertools.
🗣️ Возможно, вам не придется изобретать велосипед — Python учтёт все ваши потребности.
🔗 Ссылочка на доку
Python Learning 👩💻
⚙️ Contextlib для обработки внешних источников
ℹ️ Библиотека contextlib в Python предоставляет утилиты для работы с контекстными менеджерами и упрощения создания и использования ресурсов с помощью оператора with.
🔗 Ссылочка на доку
Python Learning 👩💻
🧑🏻💻Хотите научиться писать нейросети на одном из самых быстрых и безопасных языков программирования?
На открытом уроке 6 мая в 20:00 МСК мы научим вас создавать простейшую нейросеть с нуля, используя минимальные библиотеки. Вы не только познакомитесь с Rust, но и узнаете, как оптимизировать вычисления для работы с нейронными сетями.
Вы сможете писать быстрые и эффективные нейросети на Rust — языке, который сегодня активно используется для решения высоконагруженных задач.
👉Присоединяйтесь к открытому уроку и получите скидку на программу обучения «Rust Developer. Basic»: https://otus.pw/mPsD/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
⚙️ math.isclosemath.isclose проверяет, близки ли два числа с плавающей запятой с учётом относительной и абсолютной погрешности. Это полезно при сравнении вещественных чисел, где прямое сравнение через == ненадёжно из-за ошибок округления
Python Learning 👩💻
⚙️ importlib.invalidate_cachesimportlib.invalidate_caches() очищает внутренний кэш путей поиска модулей. Это полезно при динамическом создании или удалении .py файлов, особенно в тестах, плагинах и REPL-средах, когда модуль может появиться в процессе выполнения
Python Learning 👩💻
⌛ Что будет выведено при выполнении кода?
Пояснение ⬇️
Каждый вызов counter() создаёт своё независимое замыкание. c1() увеличивает своё локальное count, а c2() создаёт новое. nonlocal даёт доступ к count внутри increment(), сохраняя его между вызовами.
⚙️ traceback.format_exceptiontraceback.format_exception возвращает исключение в виде форматированного списка строк. Это полезно для логирования, отладки и отображения ошибок без немедленного вывода в stderr
Python Learning 👩💻
⌛ Что будет выведено при выполнении кода?
Пояснение ⬇️
Изменяемые значения по умолчанию, такие как список, сохраняются между вызовами функции. Поэтому второй вызов продолжает использовать уже существующий список.