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

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

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

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
Работа с регистрами

Строки в Python имеют свойство регистра — прописные и строчные буквы считаются разными символами.

Для преобразования регистра используются методы строк:
str.upper() — преобразует строку к верхнему регистру.
str.lower() — преобразует строку к нижнему регистру.
str.swapcase() — меняет регистр каждого символа на противоположный.
str.capitalize() — делает первую букву заглавной, остальные строчными.

Регистр конкретного символа можно проверить в строке методами:
str.isupper() — проверка на заглавный регистр.
str.islower() — проверка на строчный регистр.

Регистр важно учитывать при сравнении строк на равенство.

🔗 Python tricks
Класс Process

Process — это класс для создания и управления отдельными процессами из модуля multiprocessing.
Создание процесса выполняется конструктором Process, передавая целевую функцию и аргументы.

При создании процессов нужно учитывать:
— Ограничения на доступ к данным между процессами.
— Синхронизацию процессов при необходимости.

🔗 Python tricks
Декоратор override

@override используется для переопределения методов в классах-наследниках. Он позволяет указать, что метод в подклассе переопределяет метод базового класса.

Это может быть полезно для:

— Повышения читабельности кода, так как сразу видно, какие методы переопределены.

— Выявления ошибок: если имя метода в дочернем классе не совпадает с именем в родительском, будет выдана ошибка.

— Проверки типов аргументов: декоратор гарантирует, что типы аргументов совпадают с базовым методом.
🔗 Python tricks
set.difference update

Метод difference update() вычисляет разницу между двумя множествами (A – B). В результате множество A обновляется полученным множеством. В данном примере продемонстрировано применение метода.

🔗 Python tricks
Подсчет количества элементов

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

🔗 Python tricks
Наиболее частый элемент в списке

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

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

🔗 Python tricks
Frozenset

frozensets используются для создания неизменяемых множеств.

Основные особенности frozensets:

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

Здесь мы создали frozenset с элементами. Попытка добавить элемент вызывает ошибку, так как frozensets неизменяемы. Затем frozenset используется как ключ в словаре.

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

Библиотека setuptools предназначена для создания и распространения пакетов Python.

Она позволяет:
— Упростить установку пакетов с помощью команды pip install.
— Описывать зависимости между пакетами.
— Автоматически собирать пакеты при установке.
— Загружать пакеты на PyPI для широкого распространения.

🔗 Python tricks
Списковое включение (быстрый способ)

Списковое включение — самый эффективный способ итерации любого списка. Это итерирование однострочного списка с включением в него цикла. Посмотрите приведенный ниже пример кода, чтобы понять, как это работает.

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

Чтобы увеличить количество строк, можно использовать звездочку *. Но этот лайфхак применим и к спискам.

🔗 Python tricks
Класс 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