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

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

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

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
Класс Template

Класс Template позволяет создавать шаблоны текста с подстановкой переменных.

Это удобно для генерации текста на основе шаблона.


🔗 Python tricks
Асинхронный фреймворк Robyn

Robyn — это фреймворк, предназначенный для упрощения написания асинхронного кода.

Основные возможности Robyn:
— Удобные декораторы и функции для создания асинхронных задач и работы с ними (например, rob, task, run).

— Инструменты для организации параллельного выполнения задач (decorators like parallel, chunks).

— Интеграция с asyncio для использования асинхронных библиотек.

— Удобные классы и функции для работы с очередями задач (Queue, run_every).

— Встроенные инструменты логирования и отладки.

— Поддержка типизации с помощью typing.

🔗 Python tricks
Константы пакета string

В Python есть несколько полезных констант в пакете string, которые нужно знать начинающему программисту:

string.ascii_letters: строка со всеми буквами английского алфавита (строчными и прописными).
string.digits: строка со всеми цифрами.
string.hexdigits: строка со всеми шестнадцатеричными цифрами.
string.octdigits: строка со всеми восьмеричными цифрами.
string.punctuation: строка со всеми знаками пунктуации.
string.whitespace: строка со всеми пробельными символами.

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

🔗 Python tricks
swapcase

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

🔗 Python tricks
Выводим повторяющиеся элементы и количество их повторений

Функция groupby() позволяет получить повторяющиеся элементы в итераторе и сгруппировать их.

🔗 Python tricks
Преобразование изменяемых данных в неизменяемые

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

Неизменяемые данные, в противоположность изменяемым, после создания остаются неизменными. Посмотрите, как можно преобразовать изменяемый тип данных в неизменяемый.

🔗 Python tricks
Функция в одну строку

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

🔗 Python tricks
urllib3

urllib3 — это библиотека для отправки HTTP-запросов, она позволяет легко и удобно делать запросы к веб-сервисам и API.

Основные возможности urllib3:

— Поддержка HTTP и HTTPS протоколов.
— Кэширование соединений для повышения производительности.
— Автоматическое развертывание соединения по SSL.
— Поддержка куки, прокси, редиректов.
— Встроенная поддержка gzip и deflate.
— Пулинг соединений и многопоточность.

В примере создается экземпляр PoolManager из urllib3, который управляет пулом соединений.

Делается GET запрос к httpbin.org/ip, который возвращает IP адрес клиента.

Ответ записывается в переменную r, из которой берется тело ответа r.data и выводится на печать.

🔗 Python tricks
Применение функции ко всем элементам в списке

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

🔗 Python tricks
Возврат нескольких значений из функции

Знаете ли вы, что можно осуществлять возврат нескольких значений из функции? Вот как это сделать.

🔗 Python tricks
Функция isalnum

Функция isalnum() используется для проверки, состоит ли строка из буквенно-цифровых символов.

Функция принимает в качестве аргумента строку и возвращает True, если строка состоит только из буквенных символов (a-z, A-Z) и цифр (0-9), или False, если в строке есть другие символы, пробелы, знаки пунктуации и т. д.

*Регистр символов не имеет значения.
*Пустая строка возвращает False.

🔗 Python tricks
Метод math.perm()

Метод math.perm() вычисляет перестановки — число способов расположения n элементов по m. Он находится в модуле math.

Метод принимает два обязательных аргумента: n — общее количество элементов и m — количество элементов в подмножестве. Возвращает целое число — количество перестановок.
Если n < m, вернет 0.

В примере вычисляются перестановки из 5 элементов по 3.
То есть сколько способов выбрать подмножество из 3 элементов из множества размером 5.

🔗 Python tricks
Метод __subclasshook__

Метод subclasshook используется для определения, является ли один класс подклассом другого. Он вызывается при проверке isinstance() и issubclass() для определения отношения наследования между классами.

Этот метод позволяет настроить поведение этих функций для пользовательских классов.

В примере метод subclasshook класса B проверяет, есть ли у подкласса метод print_value. Если да, то возвращает True, что позволяет считать его подклассом B.

🔗 Python tricks
Атрибут __context__

Атрибут context используется в менеджерах контекста (context managers) и представляет контекст, в котором находится блок кода.

Он позволяет передавать произвольные данные между блоком with и методами enter/exit менеджера контекста.

В примере при входе в блок with создается объект MyContext и его атрибут value передается в переменную context с помощью метода enter.

При выходе из блока метод exit имеет доступ к атрибуту value через self.context и используется для "чистых" операций.

🔗 Python tricks
Метод str.expandtabs()

Метод str.expandtabs() используется для замены символов табуляции (\t) в строке на заданное количество пробелов.

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

🔗 Python tricks
Функция sample

Функция sample() позволяет выбрать случайным образом элементы из последовательности или коллекции.

Это удобно при необходимости получить случайную выборку из данных.

Функция принимает два основных аргумента:
population — последовательность, из которой надо выбрать элементы (list, tuple, string и т. д.)
k — количество элементов для выборки.

Дополнительные аргументы:

counts — список весов элементов (по умолчанию равновероятный выбор).
rng — генератор случайных чисел (по умолчанию берется из модуля random).

В примере из списка букв берется случайная выборка размером 3 элемента. Результат при каждом запуске будет разный.

🔗 Python tricks
Распечатывание ежемесячного календаря

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

🔗 Python tricks
Функция cv2.blur()

Вы можете размыть изображение в Python с помощью функции OpenCV cv2.blur().

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

Ознакомиться подробнее можно здесь.

🔗 Python tricks
string.rsplit

rsplit() разбивает строку по разделителю, начиная справа, и возвращает список строк. При необходимости ты можешь задать количество разбиения строки. По умолчанию этот параметр равен -1. Это значит, что нет ограничения на разбиение.

🔗 Python tricks
Расчет времени выполнения

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

🔗 Python tricks