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

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

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

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
Функция 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
Транспонирование 2d-массива

Этот лайфхак покажет, как выполнить транспонирование 2d-массива с помощью метода zip.

🔗 Python tricks
Обратный список и строка

Скорее всего, вы используете обратную функцию для инверсионной записи списков или строк. Но знаете ли вы, как осуществить инверсию более эффективным способом?

🔗 Python tricks
NetworkX

NetworkX — это библиотека Python для анализа сложных сетей. Она предоставляет структуры данных для работы с графами (сетями) и реализует множество алгоритмов для анализа и визуализации сетевых данных.

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

🔗 Python tricks
set.issubset

Метод issubset() возвращает True, если множество A является подмножеством B, т. е. если все элементы множества A присутствуют в сете B. В противном случае он возвращает False.

🔗 Python tricks
Get Method для словаря

Большинство разработчиков используют скобки, чтобы получить значение из словаря. Но сейчас рекомендуется использовать Get method.

При использовании метода скобок выдается ошибка, если ключ отсутствует. С помощью Get method вы получите “None” .

🔗 Python tricks
Паттерн проектирования «Стратегия»

«Стратегия» (Strategy) является одним из шаблонов поведения, определенных в книге «Банды четырёх» (Gang of Four, GoF). Этот паттерн относится к категории поведенческих паттернов и решает задачу определения семейства алгоритмов, инкапсуляции каждого из них и обеспечения их взаимозаменяемости. Это позволяет клиентскому коду выбирать нужный алгоритм независимо от его использования.

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

🔗 Python tricks
unit-тесты

Unit-тесты (или unittests) — это метод тестирования ПО, который позволяет проверить, работает ли отдельная единица кода (обычно функция или метод) так, как ожидается. Библиотека unittest входит в стандартную библиотеку Python и предоставляет набор инструментов для написания и выполнения тестовых сценариев.

Писать хорошие unit-тесты — это важный аспект разработки программного обеспечения. Хорошие тесты обеспечивают надежность и поддерживаемость кода, помогают выявлять ошибки и улучшать качество продукта.

🔗 Python tricks
«Циклический сбор мусора»

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

Вы можете влиять на этот процесс с помощью модуля gc (garbage collector).

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

🔗 Python tricks
string.rstrip

rstrip() возвращает копию строки с удаленными конечными символами. Все комбинации символов в аргументе chars удаляются справа от строки до первого несоответствия. Если аргумент chars не указан, все конечные пробелы удаляются из строки.

🔗 Python tricks
Превращение списка в одну строку

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

Но есть более быстрый и эффективный способ выполнения той же задачи с помощью одной строки кода.

🔗 Python tricks