Разъяснивший Python
8.17K subscribers
2.44K photos
40 videos
30 files
2.29K links
Твой проводник в омут Python'а

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: https://telega.in/c/python_pssss
Download Telegram
Как один раз инициализировать ресурс при первом использовании

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

Итог:
@lru_cache — простой способ ленивой инициализации: функция выполнится один раз, а результат будет использоваться повторно. Идеально для кэширования настроек, соединений и других «разовых» данных.

Разъяснивший Python
3
dataclasses — это модуль в стандартной библиотеке, предназначенный для упрощения создания классов данных.

Он предоставляет декоратор и набор инструментов, которые автоматически генерируют основные методы класса, такие как __init__(), __repr__(), __eq__(), и другие. Это упрощает создание классов, которые служат простым хранилищем данных, без необходимости вручную определять все методы

В примере выше мы используем декоратор @dataclass, чтобы автоматически сгенерировать методы класса Point. Мы определяем поля x, y и z, которые представляют координаты точки. После создания экземпляра класса Point с помощью аргументов конструктора, мы можем напрямую выводить информацию о точке, таreprтод __repr__() автоматически сгенерирован. Это делает код более лаконичным и удобным для использования.

Подробнее здесь

Разъяснивший Python
👍1
Создание видео из изображений

В этот раз мы сделаем скрипт для создания видео. Он будет объединять набор изображений в видеоролик, добавлять фоновую музыку, а также позволит настроить скорость смены кадров. В результате получится готовое MP4-видео!

Ссылка на код

Разъяснивший Python
1
Как объединять цепочки условий красиво и читаемо

Иногда логика с множеством if становится громоздкой. В таких случаях удобно использовать словарь как аналог switch-case.

Итог:
Словарь заменяет кучу if-elif-else, делает код чище и облегчает добавление новых случаев. Особенно полезно, когда условия связаны с конкретными значениями (например, кодами, командами или ролями).

Разъяснивший Python
range() — встроенная функция, которая создает последовательность чисел в заданном диапазоне.

range() используется для создания последовательности чисел. Она принимает три параметра: начальное значение(по умолчанию 0), конечное значение и шаг(по умолчанию 1). При вызове функции range() она возвращает объект типа range, который можно использовать в циклах или для создания списков.

В примере выше мы используем функцию range() для создания последовательности чисел от 1 до 10 с шагом 2. Цикл for проходит по каждому элементу этой последовательности и выводит его значение.

Подробнее тут

Разъяснивший Python
ffmpeg — это свободное и открытое программное обеспечение, предоставляющее набор инструментов для записи, преобразования и манипулирования аудио и видео файлами.

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

В примере выше мы используем модуль subprocess для вызова команды ffmpeg из Python. Мы указываем входной файл input.mp4 и желаемый выходной файл output.avi. После этого мы создаем команду ffmpeg и передаем ее в subprocess.call().

Таким образом, при выполнении этого кода ffmpeg сконвертирует входной видеофайл input.mp4 в формат AVI и сохранит его как output.avi.

Подробнее тут

Разъяснивший Python
Как замерить время выполнения кода элегантно

Иногда нужно узнать, сколько времени занял блок кода — для отладки, оптимизации или просто интереса. Вместо громоздких решений можно использовать контекстный менеджер.

Итог:
Контекстный менеджер timeit позволяет быстро замерять производительность без лишнего шума. Особенно полезен при профилировании отдельных участков кода.

Разъяснивший Python
👍1👎1
pynacl — библиотека, обеспечивающая простой и безопасный доступ к криптографическим функциям, основанным на библиотеке Networking and Cryptography (NaCl).

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

На примере выше у нас есть два скрипта: один для шифрования сообщения, а другой для его расшифровки. Используя pynacl, мы можем безопасно передать зашифрованное сообщение от отправителя к получателю.

Разъяснивший Python
collections — встроенный модуль, который предоставляет удобные и эффективные инструменты для обработки и работы с различными типами данных.

collections включает в себя специализированные контейнеры, которые расширяют функциональность встроенных типов данных и позволяют более эффективно решать различные задачи.

Недавно мы показывали некоторые классы из модуля collections, однако про сам модуль не рассказали.

Подробнее тут

Разъяснивший Python
Как элегантно объединять словари с приоритетом значений

Часто нужно объединить два словаря, где значения из второго имеют приоритет. Это можно сделать просто и читаемо.

Итог:
Синтаксис {**dict1, **dict2} объединяет словари, давая приоритет второму. Удобен для настройки конфигураций, параметров и всего, что связано с override'ами.

Разъяснивший Python
Ускоряем Python в сто раз при помощи менее чем ста строк на Rust

Статья описывает проблему с производительностью большой и сложной Python-библиотеки для 3D-обработки и рассказывает, как её удалось ускорить в сто раз при помощи Rust. Автор представляет несколько итераций оптимизации, которые могут помочь в решении подобных проблем с производительностью.

Читать...

Разъяснивший Python
Faker — полезная библиотека, которая поможет вам создавать реалистичные тестовые данные.

Независимо от того, нужны ли вам данные для тестирования, заполнения базы данных или демонстрации функционала, Faker делает процесс генерации данных простым и эффективным.

Faker предоставляет генераторы для различных типов данных, таких как имена, адреса, номера телефонов, электронные почты, даты, текст и многое другое. Это идеальное решение для тех, кто хочет ускорить процесс тестирования.

На примере выше мы написали функцию generate_fake_user, которая использует различные методы Faker, чтобы создать случайные данные для имени, электронной почты, номера телефона и адреса. Затем мы выводим полученные данные о пользователе.

Ставится командой ⚙️ pip3 install faker
Документация и примеры кода здесь

Разъяснивший Python
rembg - это библиотека для удаления фона у любого изображения.
Работает с помощью нейронной сети.
И также является консольной утилитой.

Открыть изображение можно как массив байтов, либо через PIL.
Оба варианта rembg понимает.
А для удаления фона достаточно импортировать и вызвать метод remove(input).

Ставится командой ⚙️ pip install rembg[gpu,cli]
Документация и примеры кода здесь.

Разъяснивший Python
Я не люблю NumPy

В статье рассказывают о противоречивой любви к NumPy: мощный инструмент для работы с массивами, который иногда сводит с ума своей непредсказуемостью и странностями

Читать...

Разъяснивший Python
Используйте функцию enumerate для перебора элементов списка и их индексов

enumerate - это встроенная функция, которая принимает список и возвращает объект, который можно использовать в цикле for для перебора элементов списка и их соответствующих индексов.

Разъяснивший Python
Scikit-learn - это широко используемая библиотека для машинного обучения на Python. Она построена поверх NumPy и SciPy и предлагает широкий спектр инструментов для создания и оценки моделей машинного обучения. Scikit-learn отлично подходит для построения традиционных моделей машинного обучения, таких как линейная регрессия, деревья решений и кластеризация k-средних.

Как использовать scikit-learn, чтобы построить простую модель линейной регрессии представлено на картинке

Ставится командой ⚙️ pip install -U scikit-learn
Документация и примеры кода здесь

Разъяснивший Python
Ограничение времени выполнения кода с signal

Когда нужно завершать долгие операции (например, при парсинге или работе с API), полезно уметь ставить таймаут на блок кода.

Итог:
Модуль signal позволяет элегантно ограничивать время выполнения операций. Особенно полезен при работе с нестабильными внешними источниками или написании защищённых CLI-утилит. Работает только в UNIX-системах.

Разъяснивший Python
👍2
Что такое асинхронное программирование в Python

Асинхронное программирование является подходом в разработке программного обеспечения, который позволяет одновременно выполнять несколько задач без блокирования основного потока выполнения.

Преимущества асинхронного программирования включают:


Более эффективное использование ресурсов
Улучшенная отзывчивость приложений
Упрощение кода для параллельного выполнения задач

Основы асинхронного программирования в Python

Для использования асинхронного программирования в Python, необходимо знакомство с ключевыми словами async и await:

async используется для объявления асинхронной функции. Это означает, что функция будет возвращать объект coroutine, который можно выполнить асинхронно.
await используется внутри асинхронной функции для ожидания результата другой асинхронной операции. Это позволяет основному потоку продолжить выполнение других задач, пока ожидается результат.

Разъяснивший Python
Pandas - это библиотека для обработки и анализа данных на Python.

Она широко используется для работы со структурированными данными и отлично подходит для очистки, преобразования и анализа данных. Pandas имеет широкий спектр инструментов для работы с данными, включая объекты dataframe и series, которые похожи на таблицы и столбцы в SQL.

Как использовать Pandas для загрузки и изучения набора данных представлены на фотографии

Ставится командой ⚙️ pip install cython
Документация и примеры кода здесь

Разъяснивший Python
🤔1
Автоматический резюме-аналитик

Данная программа позволяет загружать .pdf или .docx файл с резюме, извлекает ключевые навыки, опыт, контакты, и формирует краткий отчет. В результате можно разобрать резюме без ручного чтения – отличный инструмент для HR, рекрутеров или разработчиков.

Ссылка на код

Разъяснивший Python