Python tricks | Хитрости Питона
5.75K subscribers
2.21K photos
26 videos
1 file
2.52K links
Здесь вы найдете лучшие практики и приёмы, которые используют опытные программисты.

Сотрудничество: @SIeep_Token

Мы на платформе: https://telegram.me/python_tricks

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
Модуль subprocess


Модуль subprocess позволяет создавать новые процессы. При этом он может подключаться к стандартным потокам ввода/вывода/ошибок и получать код возврата.

С помощью subprocess можно, например, выполнять любые команды Linux из скрипта. И в зависимости от ситуации получать вывод или только проверять, что команда выполнилась без ошибок.
🔗 Python tricks
Модуль fractions

Класс, представляющий собой рациональные числа. Экземпляр класса можно создать из пары чисел (числитель, знаменатель), из другого рационального числа, числа с плавающей точкой, числа типа decimal.Decimal, и из строки, представляющей собой число.
🔗 Python tricks
Модуль cmath

Модуль cmath – предоставляет функции для работы с комплексными числами. Помарает производить математические вычисления в вашей программе.
🔗 Python tricks
Библиотека dataclasses

Данные можно хранить в разных видах. Мы уже знаем про json, словари и списки. В пайтон есть еще один интересный подход - объектно ориентированный. Он часто намного удобнее и нагляднее. Для самого простого хранения и существует библиотека dataclasses. Она позволяет удобно хранить данные в ОЗУ, объекты создаются минимально возможным количеством строк кода. Ну и согласитесь, смотрится это очень удобно и красиво.
🔗 Python tricks
Сортировка пузырьком

Сортировка пузырьком — это простой алгоритм сортировки, основанный на сравнении и обмене соседних элементов.

Во время сортировки сравниваются два соседних элемента массива, если левый элемент больше правого, они меняются местами.
Проход по элементам повторяется до тех пор, пока не будут отсортированы все элементы.

Сложность алгоритма O(n^2) — квадратичная.

Реализация сортировки пузырьком представлена на изображении.

🔗 Python tricks
Библиотека SymPy

SymPy
— это библиотека для символьных вычислений. Она позволяет работать с математическими объектами, такими как числа, переменные, выражения, уравнения и функции на символьном уровне.

SymPy широко используется в научных вычислениях, инженерии, образовании и других областях, где требуются символьные математические вычисления.

Основные области применения SymPy:
— Аналитическая геометрия, алгебра и теория чисел.
— Решение уравнений и систем уравнений.
— Символьное дифференцирование и интегрирование.
— Работа с пределами, рядами, преобразованиями.
— Векторный анализ, тензоры.
— Физические вычисления и моделирование.
— Теория вероятностей и статистика.
— Обработка и визуализация математических данных.
🔗 Python tricks
Модуль glob

Модуль glob находит все пути, совпадающие с заданным шаблоном в соответствии с правилами, используемыми оболочкой Unix. Обрабатываются символы "*" (произвольное количество символов), "?" (один символ), и диапазоны символов с помощью []. Для использования тильды "~" и переменных окружения необходимо использовать os.path.expanduser() и os.path.expandvars().
🔗 Python tricks
sets.isuperset()

Функция sets.isuperset() позволяет проверить, является ли один set подмножеством другого.
Она принимает в качестве аргумента другой set и возвращает boolean значение — True если первый set содержит все элементы второго, и False в противном случае.

Это полезно при работе с множествами для проверки включения, или при проверке покрытия тестами.
Также это используется для проверки включения при работе с данными, чтобы убедиться, что один набор данных полностью покрывает другой по каким-либо критериям.
🔗 Python tricks
Colorama

Colorama — это библиотека для Python, которая предоставляет простой способ добавить цвета и стили текста при выводе в терминале. Она особенно полезна для создания красочного и информативного текстового интерфейса в командной строке.

Для использования Colorama вам нужно установить библиотеку с помощью pip:

pip install colorama

После установки вы можете начать использовать Colorama в своем коде Python. Colorama делает работу с цветами и стилями текста в терминале гораздо более удобной и читаемой.

🔗 Python tricks
Memray

Memray - это библиотека для профилирования памяти и она является важным инструментом оптимизации производительности Python программ.

Библиотека отслеживает выделение и освобождение памяти при работе программы, поддерживает отслеживание ссылок на объект, применятся для профилирования на серверах и в виртуальных окружениях.

В примере мы используем декоратор memray.profile, который будет отслеживать все выделение и освобождение памяти внутри функции my_func().

При запуске этого кода memray выведет отчёт.
🔗 Python tricks
uuid

Стандартный модуль uuid — быстрый и простой способ сгенерировать UUID (universally unique identifier, глобально уникальный идентификатор).

Так мы создаём случайное 128-битное число, которое почти наверняка будет уникальным.

Существует более 2¹²² возможных UUID. Это более 5 ундециллионов или 5,000,000,000,000,000,000,000,000,000,000,000,000.

Вероятность нахождения дубликатов в заданном наборе крайне мала. Даже при наличии триллиона UUID вероятность того, что среди них есть дубликат, гораздо меньше, чем один к миллиарду.

Вполне недурно для двух строк кода.
🔗 Python tricks
Модуль copy

Операция присваивания не копирует объект, он лишь создаёт ссылку на объект. Для изменяемых коллекций, или для коллекций, содержащих изменяемые элементы, часто необходима такая копия, чтобы её можно было изменить, не изменяя оригинал. Данный модуль предоставляет общие (поверхностная и глубокая) операции копирования.
🔗 Python tricks
issubclass()

Функция принимает два параметра:
class — класс, который нужно проверить.
classinfo — класс, тип или кортеж классов и типов.

issubclass() проверяет, является ли аргумент класса (class) подклассом другого класса (classinfo) и возвращает значение типа bool (True/False).
🔗 Python tricks
Модуль glob

Модуль glob находит все пути, совпадающие с заданным шаблоном в соответствии с правилами, используемыми оболочкой Unix. Обрабатываются символы "*" (произвольное количество символов), "?" (один символ), и диапазоны символов с помощью []. Для использования тильды "~" и переменных окружения необходимо использовать os.path.expanduser() и os.path.expandvars().
🔗 Python tricks
Vibora

Vibora — это фреймворк для создания веб-приложений на языке Python. Он является асинхронным и предоставляет инструменты для создания высокопроизводительных веб-серверов и веб-приложений.

В этом примере мы создаем экземпляр приложения Vibora, определяем обработчик маршрута для корневого URL ("/"), который возвращает строку «Привет, мир!», и запускаем веб-сервер на порту 8000.
🔗 Python tricks
setattr()

Функция setattr() в Python используется для установки значения атрибута объекта. Она позволяет изменять атрибуты объекта, даже если вы не знаете их заранее.

Синтаксис функции setattr() выглядит следующим образом:

setattr(object, attribute, value)

object — объект, у которого вы хотите изменить атрибут.
attribute — имя атрибута, который вы хотите установить.
value — значение, которое вы хотите присвоить атрибуту.
🔗 Python tricks
re.split()

re.split() — это функция из модуля re (регулярные выражения), которая позволяет разделять строку на подстроки с использованием регулярных выражений в качестве разделителя. Функция re.split() принимает два аргумента: регулярное выражение и строку, которую вы хотите разделить.

re.split() также может использовать более сложные регулярные выражения. Например, если вы хотите разделить строку по любым пробельным символам (пробелам, табуляциям и др.),

re.split() возвращает список подстрок, полученных после разделения. Вы можете затем использовать этот список в вашем коде для дальнейшей обработки данных.

🔗 Python tricks
aiohttp

Библиотека aiohttp — это асинхронный HTTP-клиент/сервер для asyncio и Python. Она поддерживает как клиентские, так и серверные веб-сокеты “из коробки” без коллбэков. Веб-сервер имеет промежуточное ПО (middlewares), сигналы и подключаемую маршрутизацию.

В этом примере создается веб-приложение с помощью aiohttp.web.Application, добавляются маршруты для обработки запросов к корневому URL-адресу (/) и URL-адресу с именем (/{name}). Функция handle обрабатывает запросы, извлекает имя из параметров запроса (или использует значение по умолчанию “Anonymous”) и возвращает ответ с текстом приветствия.
🔗 Python tricks
Модуль os.path

Модуль реализует некоторые полезные функции для имён путей. Для чтения или записи файлов open(), а для доступа к файловой системе модуль os. Параметры пути могут передаваться в виде строк или байтов. Приложениям рекомендуется представлять имена файлов в виде Юникод строк. К сожалению, некоторые имена файлов не могут быть представлены в виде строк в Unix, поэтому приложения, которым необходимо поддерживать произвольные имена файлов в Unix, должны использовать байтовые объекты для представления имён путей.

И наоборот, использование байтовых объектов не может представлять все имена файлов в Windows (в стандартной кодировке mbcs), поэтому приложения Windows должны использовать строковые объекты для доступа ко всем файлам.
🔗 Python tricks
Библиотека Typer

Typer — это библиотека для создания командных интерфейсов приложений на Python.
Она позволяет легко создавать CLI приложения с поддержкой аргументов, опций, субкоманд и автоматической генерацией help.

Основные возможности Typer:
— Декоратор @typer.command() для определения команд и подкоманд.
— Автоматический парсинг аргументов и опций.
— Валидация и tipped annotations для аргументов и опций.
— Автоматическая генерация help с описаниями.
— Встроенная поддержка Click для обратной совместимости.

Typer часто используется для создания утилит командной строки, CLI интерфейсов для python приложений, API клиентов, DevOps инструментов и других задач, где нужен простой и удобный интерфейс командной строки.
🔗 Python tricks
SHAP

SHAP (SHapley Additive exPlanations) — это библиотека для объяснения моделей машинного обучения, позволяющая интерпретировать прогнозы моделей, понимать, какие факторы вносят наибольший вклад в принятие решений моделью. Это полезный инструмент для анализа и интерпретации моделей, особенно в задачах, где объяснение результатов модели важно, например, в медицинских и финансовых приложениях.

Для использования библиотеки SHAP в Python вам необходимо установить ее и импортировать.

🔗 Python tricks