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
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
Пророк

Пророк (Prophet) — это библиотека для анализа и прогнозирования временных рядов, разработанная командой Facebook. Она предоставляет простой и эффективный способ анализа данных временных рядов с трендами, сезонными компонентами и праздниками. Вы можете использовать библиотеку Prophet на Python для выполнения прогнозирования временных рядов.

В этом коде мы создаем искусственный временной ряд с линейным трендом и недельной сезонностью. Затем мы используем библиотеку Prophet для анализа и прогнозирования этого временного ряда. Код визуализирует оригинальные данные, тренд, сезонность и прогноз на будущие 30 дней.

🔗 Python tricks
Инкапсуляция

Инкапсуляция — это принцип ограничения доступа к части реализации объекта от внешнего кода.
Это позволяет предотвратить непреднамеренное изменение внутреннего состояния объекта.

В Python инкапсуляция реализуется с помощью:
— Префикса _ в именах атрибутов и методов класса. Это сигнализирует, что они предназначены только для внутреннего использования в классе.
— Двойного префикса __ в именах атрибутов методов (например, __private_method). Такая запись делает их недоступными извне класса.
Свойств (property) для контролируемого доступа к атрибутам класса.

🔗 Python tricks
Модуль json

JSON (JavaScript Object Notation) это легковесный формат обмена данными. Людям его легко читать и вести в нем записи, а компьютеры запросто справляются с его синтаксическим анализом и генерацией.

В Python есть ряд пакетов, поддерживающих JSON, в частности metamagic.json, jyson, simplejson, Yajl-Py, ultrajson, и json.
🔗 Python tricks
Модуль pickle

Модуль pickle реализует мощный алгоритм сериализации и десериализации объектов Python. "Pickling" - процесс преобразования объекта Python в поток байтов, а "unpickling" - обратная операция, в результате которой поток байтов преобразуется обратно в Python-объект. Так как поток байтов легко можно записать в файл, модуль pickle широко применяется для сохранения и загрузки сложных объектов в Python.
🔗 Python tricks
Моржовый оператор (Walrus Operator)

Моржовый оператор (Walrus operator) — это оператор :=, введенный в версии 3.8. Он позволяет одновременно присвоить значение переменной и вернуть его.

Синтаксис выглядит так: имя_переменной := выражение. Справа вычисляется выражение и присваивается переменной слева
Переменная доступна в остальной части выражения после оператора.

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

🔗 Python tricks
YAML

YAML означает «YAML — не язык разметки» («YAML Ain’t Markup Language»). Это язык форматирования данных, являющийся надмножеством JSON.

В отличие от JSON, YAML может хранить более сложные объекты и ссылаться на собственные элементы. Также там можно писать комментарии, что делает YAML подходящим для конфигурационных файлов.

Модуль PyYAML позволяет использовать YAML в Python.

PyYAML позволяет хранить любые Python-объекты и экземпляры любых пользовательских классов.
🔗 Python tricks
Географические карты в Python

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

В этом примере мы использовали функцию geoplotlib.kde(). Эта функция создает тепловую карту, в качестве аргумента она принимает данные с географическими координатами, а также параметры bw (ширина полосы) и cut_below (порог отсечения).
Ширина полосы определяет степень сглаживания тепловой карты, а порог отсечения позволяет убрать из визуализации области с низкой плотностью точек.

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

🔗 Python tricks
NotImplemented

NotImplemented представляет собой специальный объект-сентинель (или маркер), который обычно используется в методах классов или функциях для указания на то, что конкретная функциональность или реализация пока не были предоставлены. Это может быть полезным при создании абстрактных классов или интерфейсов, когда вы хотите, чтобы подклассы предоставляли свои собственные реализации методов.

🔗 Python tricks
OrderedDict

OrderedDict — это улучшенная версия обычного словаря (dict), которая сохраняет порядок элементов в словаре в том порядке, в котором они были добавлены. Это означает, что при итерации по OrderedDict, элементы будут возвращаться в том порядке, в котором они были добавлены в словарь.

Вы можете использовать OrderedDict из модуля collections в Python для создания словаря с учетом порядка элементов.

🔗 Python tricks
re.findall()

re.findall() — это функция из модуля re в Python, которая используется для поиска всех неперекрывающихся совпадений шаблона регулярного выражения в строке и возвращает список всех найденных совпадений.

Ее синтаксис выглядит следующим образом:

re.findall(pattern, string, flags=0)

Где:
pattern — это регулярное выражение, которое вы хотите найти в строке.
string — строка, в которой вы хотите выполнить поиск.
flags (необязательный) — флаги, определяющие различные опции для выполнения поиска.

re.findall() возвращает список всех совпадений, найденных в строке. Если совпадений не найдено, он вернет пустой список.

🔗 Python tricks
issubclass()

Функция issubclass() в Python используется для проверки того, является ли один класс подклассом (наследником) другого класса. Она принимает два аргумента: класс (или кортеж классов) и потенциальный родительский класс. Функция возвращает True, если класс является подклассом указанного родительского класса, и False в противном случае.

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

issubclass(class, classinfo)

Где:
class: класс, который вы хотите проверить.
classinfo: класс (или кортеж классов), который вы хотите использовать в качестве родительского класса для проверки.

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

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

Для установки библиотеки progressbar вы можете использовать инструмент управления пакетами pip.

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

🔗 Python tricks
Библиотека scikit-image

scikit-image — это библиотека для обработки изображений. scikit-image также удобна для применения в задачах компьютерного зрения.

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

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

Основные возможности Qiskit:
— Создание и симуляция квантовых цепей.
— Работа с квантовыми алгоритмами (Гровера, Шора, квантовое Фурье-преобразование и др.).
— Оптимизация и компиляция квантовых программ.
— Интеграция с реальным квантовым оборудованием (квантовыми процессорами).
— Визуализация и анализ квантовых цепей.
🔗 Python tricks