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

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

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

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
re.match()

re.match() — поиск вхождения шаблона в начало строки. В качестве аргументов требуется передать сначала шаблон, а потом строку для проверки.

🔗 Python tricks
re.findall()

re.findall()
— поиск всех вхождений шаблона в любом месте строки.

🔗 Python tricks
exec()

Exec() — это еще одна встроенная функция для выполнения строки кода.
В отличие от eval(), exec() выполняет операторы и блоки кода, а не просто выражения.

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

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

cvxpy — эта библиотека позволяет описывать оптимизационные задачи в высокоуровневом виде и эффективно решать их с помощью численных методов.

Основные возможности cvxpy:
— Удобный синтаксис для задания целевой функции и ограничений в виде выражений Python.
— Поддержка разных типов переменных: вещественных, целочисленных, булевых.
— Возможность задания неравенств и равенств как ограничений.
— Встроенные функции для задания норм, статистических величин и других полезных выражений.
— Автоматический выбор подходящего численного решателя на основе задачи.
— Интеграция с NumPy, SciPy и другими популярными библиотеками.

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

🔗 Python tricks
Pystan

Pystan — это python-обёртка для Stan, которая позволяет использовать методы байесовского статистического вывода.

Основные возможности Pystan:
— Простой интерфейс для задания байесовских моделей на языке Stan.
— Автоматическая компиляция моделей в высокооптимизированный код на C++.
— Выполнение статистического вывода с использованием методов Монте-Карло (MCMC).
— Возможность задавать сложные иерархические модели.
— Удобные инструменты для анализа результатов моделирования.
— Интеграция со многими библиотеками данных и визуализации в Python.

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

🔗 Python tricks
Что такое интроспекция (intorspection)?

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

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

Некоторые примеры использования интроспекции в Python:
— Проверка типа объекта с помощью функций type() или isinstance()
— Получение списка атрибутов и методов объекта с помощью dir()
— Использование hasattr() или getattr() для проверки наличия атрибута или метода у объекта
— Использование callable() для проверки, является ли объект функцией

🔗 Python tricks
Что такое async?

Async — это синтаксис для создания асинхронного кода на основе корутин.
Асинхронное программирование позволяет выполнять операции вне основного потока выполнения программы.

С помощью async def определяются асинхронные функции-корутины. Такие функции не выполняются сразу, а возвращают объект-корутину.
Для запуска корутин используется await. Это передает управление обратно в событийный цикл до завершения корутины.

Asyncio — стандартный модуль для работы с асинхронным кодом. Он содержит событийный цикл и различные классы.

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

*Корутины полезны для операций ввода/вывода, ожидания сети, обращения к БД — там, где нужно не блокировать основной поток.


🔗 Python tricks
super()

super() — это встроенная функция, которая используется для вызова родительского класса. Она позволяет вызывать методы родительского класса из дочернего класса.
Это полезно при наследовании, чтобы использовать функционал базового класса.

Вызов super() ищет следующий класс в цепочке наследования и вызывает этот метод.
Функция принимает аргументы self и cls для связывания с текущим объектом и классом.

Она часто используется в методах init дочерних классов, чтобы вызвать init родителя и инициализировать его.
Использование super() позволяет избежать неявного упоминания имени базового класса в коде.

🔗 Python tricks
Функция dir()

Функция dir() используется для получения списка атрибутов и методов объекта.
Она принимает объект в качестве аргумента и возвращает список его атрибутов и методов в виде строк.

Для модулей dir() возвращает список определенных в нем имен. Для классов возвращаются его атрибуты, методы и внутренние функции.

С помощью dir() можно получить список ключевых слов языка, передав builtin или builtins в качестве аргумента.
Без аргументов dir() возвращает список имен, определенных в текущей области видимости.

🔗 Python tricks
dict.values

Метод values() возвращает объект представления, который отображает список всех значений в словаре. Данный метод не принимает никаких параметров.

🔗 Python tricks
Pillow

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

🔗 Python tricks
Метод isspace()

Метод isspace() проверяет, является ли символ пробельным.

Пробельными символами считаются:
— Пробел (' ').
— Табуляция ('\t').
— Перевод строки ('\n').
— Перевод каретки ('\r').
— Прочие unicode символы, определяемые как пробелы.

isspace() возвращает True, если символ пробельный, и False в противном случае.
Этот метод удобно использовать для проверки и обработки строк.

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

igraph предназначена для работы с графами и сетями. Она позволяет строить, анализировать и визуализировать графы.

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

Основные возможности igraph — генерация случайных и классических графов, вычисление различных метрик (степени вершин, диаметра графа и т. д.), поиск сообществ и кластеров.

🔗 Python tricks
re.search()

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

🔗 Python tricks
re.sub()

re.sub() — заменяет фрагменты в соответствии с шаблоном.

🔗 Python tricks
re.split()

re.split() — разделяет строку по шаблону, количество разделений задается числом.

🔗 Python tricks
manim

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

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

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

🔗 Python tricks
Freezegun

Freezegun — это библиотека Python, которая позволяет тестировать код, который зависит от времени. Она делает это, заморозив время в определенном моменте. Это может быть полезно для тестирования таких вещей, как:

— Сроки истечения действия токенов или подписок
— Расчеты, основанные на текущей дате и времени
— Отслеживание ошибок, связанных с временем

Freezegun предоставляет несколько способов использовать его. Самый простой способ - использовать декоратор @freeze_time. Этот декоратор принимает один аргумент, который представляет собой желаемое время в формате datetime. Например, следующий код заморозит время в 12:00:00 1 января 2023 года

🔗 Python tricks
Freezegun

Freezegun — это библиотека Python, которая позволяет тестировать код, который зависит от времени. Она делает это, заморозив время в определенном моменте. Это может быть полезно для тестирования таких вещей, как:

— Сроки истечения действия токенов или подписок
— Расчеты, основанные на текущей дате и времени
— Отслеживание ошибок, связанных с временем

Freezegun предоставляет несколько способов использовать его. Самый простой способ - использовать декоратор @freeze_time. Этот декоратор принимает один аргумент, который представляет собой желаемое время в формате datetime. Например, следующий код заморозит время в 12:00:00 1 января 2023 года

🔗 Python tricks
dict.keys

Метод keys() извлекает ключи словаря и возвращает список ключей в виде объекта представления. В приведенном примере обновляется словарь с помощью добавления элемента, а затем используется метод keys() для извлечения ключей.

🔗 Python tricks
list.index

Метод index() возвращает индекс данного элемента в списке. Если элемент не найден, возникает исключение ValueError. Обрати внимание, данный метод возвращает только первое вхождение соответствующего элемента.

🔗 Python tricks