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
Операторы Объединения: Самый Элегантный Способ Объединения словарей Python (ч.1)

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

Например, как мы могли объединить следующие три словаря до Python 3.9?

Одним из методов является использование циклов for.

🔗 Python tricks
Модуль doctest

Модуль doctest — это легкий фреймворк для тестирования, который позволяет автоматизировать тестирование кода, используя его документацию. Модуль ищет в документации примеры кода, которые можно выполнить, и проверяет, соответствуют ли результаты ожидаемым.

Как использовать doctest?

Чтобы использовать doctest, необходимо импортировать его в свой код:

import doctest


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

Чтобы запустить тесты doctest, вы можете использовать функцию doctest.testmod(). Если тесты пройдут успешно, ничего не будет напечатано. Если тесты потерпят неудачу, будет напечатано сообщение об ошибке, указывающее на причину неудачи.

🔗 Python tricks
CatBoost

CatBoost — это библиотека градиентного бустинга на деревьях решений, разработанная Яндексом. Она использует небрежные (oblivious) деревья решений, чтобы вырастить сбалансированное дерево. Одни и те же функции используются для создания левых и правых разделений (split) на каждом уровне дерева.

Чтобы установить CatBoost в Python, выполните следующие действия:

pip install catboost


Затем импортируйте библиотеку:

import catboost


🔗 Python tricks
Операторы Объединения: Самый Элегантный Способ Объединения словарей Python (ч.2)

В Python 3.9 были введены операторы объединения, которые сделали задачи объединения очень простыми

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

🔗 Python tricks
tuple.count

Метод count() позволяет узнать, сколько раз указанный элемент появляется в кортеже. В приведенном примере мы использовали метод count() для подсчета количества раз, когда элементы 1 и 7 появляются в кортеже. Здесь кортеж чисел (1,3,4,1,6,1) содержит три единицы и не содержит числа 7. Следовательно, результатом будет 3 и 0.

🔗 Python tricks
Работа с регистрами

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

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

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

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

🔗 Python tricks
Можно ли объявлять функцию внутри другой функции? Где она будет видна?

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

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

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


🔗 Python tricks
Класс Process

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

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

🔗 Python tricks
Что такое контейнер?

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

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

Все контейнеры в Python реализуют общие методы, такие как len() для получения размера и contains() для проверки вхождения элемента. Это обеспечивает единый интерфейс работы с разными типами контейнеров.


🔗 Python tricks
Подсказки по вводу: Сделайте ваши программы на Python безопасными для ввода

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

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

🔗 Python tricks
F-строки: Подход к форматированию строк на Pythonic (ч.1)

Python поддерживает несколько различных методов форматирования строк, таких как форматирование в стиле C с использованием символов %, встроенная функция format() и f-строки.

Если вы всё ещё не используете более старые версии, чем Python 3.6, f-строки, безусловно, являются наиболее удобным способом форматирования строк, потому что они могут выполнять все задачи форматирования с минимумом кода и даже запускать выражения внутри строк.

🔗 Python tricks
F-строки: Подход к форматированию строк на Pythonic (ч.2)

Как показано в коде, есть только две вещи, которые нужно сделать для использования f-строк:

1)Добавить букву “f” перед строкой, чтобы указать, что это f-строка.
2)Использовать фигурные скобки с именем переменной и необязательный спецификатор формата внутри строки ({variable_name:format}), чтобы интерполировать значение переменной в определённом формате.

“Простое лучше сложного”. f-строки являются хорошим отражением этой цитаты из "The Zen of Python". Более того, мы можем напрямую выполнить выражение внутри f-строки.

🔗 Python tricks
Chartify

Chartify — это библиотека визуализации. Ее цель — максимально упростить создание диаграмм для специалистов по данным. Библиотека поставляется с удобным синтаксисом и логическим форматированием данных (в отличие от других инструментов). Для создания быстрых и красивых диаграмм требуется меньше времени. Сама библиотека была написана в Spotify labs.

🔗 Python tricks
Pillow

Pillow является ответвлением Python Imaging Library. Эта библиотека подойдет для создания миниатюр, преобразования в различные форматы, наложения фильтров, вращения и отображения изображений и т.д. Pillow — идеальный вариант для пакетной обработки большого количества изображений.

🔗 Python tricks
string.startswith

Метод startswith() возвращает True, если строка начинается с указанного префикса (строки). Если нет, он возвращает False. При необходимости ты можешь задать начальную и конечную позиции, в которых нужно проверить префикс внутри строки.

🔗 Python tricks
Colorama

Colorama помогает добавить цвета в терминал. Этот пакет отлично украшает Python-скрипты. Документация проста и понятна, почитать ее можно на странице Colorama в PyPI.

Если хотите, чтобы Colorama работала под Windows, то вначале вызовите colorama.init().

🔗 Python tricks
Simplejson

Что не так с нативным JSON-модулем в Python? Ничего! Более того, json в Python — это и есть simplejson. То есть Python берет версию simplejson и добавляет ее в каждый свой релиз. А в использовании simplejson есть свои преимущества, ведь он:
• поддерживается в большем количестве версий Python;
• обновляется чаще, чем стандартный модуль Python;
• содержит дополнительные части, написанные на С, из-за чего работает очень быстро.

🔗 Python tricks
Интроспекция

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

В Python есть несколько способов использовать интроспекцию. Один из способов — использовать встроенные функции type(), dir() и getattr().

🔗 Python tricks
Requests

Requests основан на самой часто скачиваемой Python-библиотеке — urllib3. Requests максимально упрощает веб-запросы, оставаясь при этом чрезвычайно мощным и разноплановым инструментом. Скорее всего, вы уже знакомы с этим пакетом, но без него мой список был бы неполным.

🔗 Python tricks
JmesPath

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

🔗 Python tricks