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 tricks
divmod

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

🔗 Python tricks
Как скопировать объект в Python

В общем случае, с помощью модуля copy.

Некоторые объекты можно скопировать более просто. Словари имеют метод copy.

Последовательности могут быть скопированы путём срезов.
🔗 Python tricks
Geoplotlib

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

Перед началом работы установите и импортируйте библиотеку. Чтобы визуализировать геоданные, вам понадобятся данные о географических координатах (широте и долготе). Вы можете использовать различные источники данных, такие как CSV-файлы, базы данных или API.

🔗 Python tricks
img2pdf

img2pdf — это библиотека Python, которая позволяет создавать файлы PDF из изображений. Для использования img2pdf вам нужно установить библиотеку (если она не установлена) и затем использовать ее для создания PDF-файлов из изображений.

Замените image1.jpg, image2.png, и image3.jpeg из примера на имена файлов с вашими изображениями, которые вы хотите объединить в PDF. Затем запустите этот скрипт, и он создаст файл output.pdf, содержащий ваши изображения в виде страниц PDF.

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

🔗 Python tricks
Метод dict.values()

Метод dict.values() в Python используется для получения всех значений (values) в словаре (dictionary). Этот метод возвращает представление (view) значений в словаре в виде объекта типа dict_values.

Этот метод полезен, когда вы хотите получить доступ к значениям словаря, но не обязательно к ключам. Вы можете использовать dict.values() в циклах или для выполнения операций на значениях словаря, например, суммирования всех значений или поиска определенного значения.

🔗 Python tricks
Как создавать функции более высокого порядка

Есть два пути: использовать вложенные функции или вызываемые объекты.

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

Объект может сохранять свое состояние для нескольких вызовов.
🔗 Python tricks
Почему изменение списка 'y' изменяет также список 'x'

Вы, возможно, будете удивлены тому, что добавление в y изменяет также и x.
Два факта приводят к такому результату:
• Переменные - это просто ссылки на объекты. y = x не создаёт копию списка - это просто создаёт переменную y, которая ссылается на тот же объект, что и x.
• Списки изменяемы.
🔗 Python tricks
Как можно узнать имя объекта

Вообще говоря, никак, поскольку объекты в действительности не имеют имён. Важно: присваивание всегда связывает имя с объектом. Это верно и для инструкций def и class.

Возможно, класс имеет имя: однако, хотя он связан с двумя именами и запрашивается через имя B, созданный экземпляр всё ещё считается экземпляром класса A. Однако, невозможно сказать, имя экземпляра a или b, поскольку оба они связаны с одним и тем же значением.
🔗 Python tricks
Метод update()

Метод update() в Python используется для обновления содержимого словаря (dict) с данными из другого словаря или итерабельного объекта. Он позволяет добавлять новые ключи и значения в словарь или обновлять значения существующих ключей.

Синтаксис метода update() следующий:

словарь.update(другой_словарь)

где:

словарь — это словарь, в котором вы хотите обновить данные.
другой_словарь — это словарь или другой итерабельный объект (например, другой словарь, список кортежей или список списков), данные из которого вы хотите добавить или обновить в словарь.

🔗 Python tricks
Методы .removeprefix() и .removesuffix()

Методы .removeprefix() и .removesuffix() были введены в Python 3.9. Они предназначены для удаления указанного префикса или суффикса из строки. Эти методы предоставляют удобный способ обрезания строк, особенно если вы знаете, что определенная строка всегда начинается с определенного префикса или заканчивается определенным суффиксом. Это позволяет избежать необходимости использования сложных срезов строк и делает код более читаемым.

🔗 Python tricks
Какой приоритет у оператора "запятая"

Запятая не является оператором в Python. Поскольку запятая - не оператор, но разделитель между выражениями, если бы было введено:
("a" in "b"), "a"
А не
"a" in ("b", "a")
То же самое верно и для операторов присваивания (=, += и другие). Они не являются операторами как таковыми, а лишь синтаксическими разделителями в операциях присваивания.
🔗 Python tricks
Как можно изменить строку?

Никак, поскольку строки неизменяемы. В большинстве ситуаций, нужно просто сделать новую строку из различных частей. Однако, если так нужно, можно использовать io.StringIO, либо модуль array
🔗 Python tricks
collections.MutableMapping

collections.MutableMapping был представлен в Python 3.3 и представляет собой абстрактный базовый класс, который определяет интерфейс для изменяемых (mutable) отображений (маппингов) в Python. Этот класс служит основой для создания собственных классов, реализующих словари и другие типы отображений.

MutableMapping наследует от collections.abc.Mapping, который, в свою очередь, наследует от collections.abc.Collection. Эти абстрактные базовые классы предоставляют интерфейсы и методы для работы с коллекциями, маппингами и другими структурами данных.

Чтобы создать собственный класс, реализующий MutableMapping, вы должны определить несколько методов, включая getitem, setitem, delitem, iter, len, и, по желанию, contains (для поддержки оператора in). Эти методы обеспечивают доступ, изменение и удаление элементов из вашего отображения, а также обход и определение его размера.

🔗 Python tricks
Создаем простое веб-приложение с помощью Molten

Molten — это современный фреймворк для создания API на Python. Он предлагает ряд функций, которые делают разработку API более удобной и эффективной.

Molten может быть использован для создания любого веб-приложения или API, которое требует высокой степени модульности и тестируемости. Он особенно полезен для создания RESTful API.

В этом примере мы создаем простое веб-приложение с одним маршрутом ("/"), который возвращает приветственное сообщение в формате JSON. Мы затем запускаем это приложение на локальном сервере на порту 8000.
🔗 Python tricks
Mypy

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

Для использования Mypy нужно аннотировать переменные специальным синтаксисом, в примере мы указали, что функция sum_list принимает список целых чисел и возвращает целое число.

После запуска, если типы не совпадают, Mypy выдаст ошибку, как показано в примере.
🔗 Python tricks
string.isspace

С помощью метода isspace() ты можешь узнать, все ли символы в строке являются пробельными символами. Если являются, возвращается True. Если же строка пустая или присутствует хотя бы один не пробельный символ, возвращается False.

🔗 Python tricks
abs

Функция abs() возвращает абсолютное значение заданного числа. Под абсолютным значением подразумевается неотрицательное значение. В качестве числа может быть целое число, с плавающей запятой и комплексное число.

🔗 Python tricks
Метод isspace()

Метод isspace() — это строковый метод, который используется для проверки, состоит ли строка только из пробельных символов (пробелов, символов табуляции, символов новой строки и других символов, которые считаются «пробельными» в контексте языка Python).

Примечание: isspace() не изменяет исходную строку, а просто возвращает булево значение в зависимости от условия.

🔗 Python tricks
Как найти подстроку?

Для поиска подстроки в Python с использованием оператора in, вам нужно просто использовать оператор in в условном операторе (обычно внутри if). Вот подробное объяснение шаг за шагом:

1. Создайте переменную, в которой будете искать подстроку (назовем ее main_string).
2. Создайте переменную, содержащую подстроку, которую вы хотите найти (назовем ее sub_string).
3.Используйте оператор in для проверки наличия sub_string в main_string внутри условного оператора if. Если sub_string найдена в main_string, то условие if будет выполняться, иначе оно не будет выполняться.

Оператор in проверяет наличие подстроки внутри строки и не возвращает индекс, а просто булево значение True или False, которое показывает, найдена ли подстрока или нет.

🔗 Python tricks