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
​​Ограничение импорта

Для того, чтобы ограничить импортирование некоторых объектов, мы можем создать список __all__, в который передадим все объекты, которые будут импортироваться при импорте вида from module import *
​​Работа с ip адресами

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

Одним из вариантов его использования является генерация списка IP-адресов из диапазона адресов, заданных в формате CIDR (Classless Inter-Domain Routing, или бесклассовая адресация).
Установите библиотек командой pip install ipaddress
​​Улучшенные сообщения об ошибках в Python 3.10

В крайней версии python улучшили описание некоторых ошибок. Если в старых версиях языка при ошибке в синтаксисе вы получали invalid syntax и долго искали синтаксическую ошибку, то теперь на отладку уходит минимум времени, так как интерпретатор сам укажет вам, в каком месте она произошла и по какой причине
🐍 Python и 1000 программ 🐍 — канал для тех, кто программирует, или хочет научиться программировать на Python

В этом канале:

📚 Книги по Python
📖 Уроки для начинающих и продвинутых.
🧐 Тесты для проверки знаний
📪 Свежие новости из мира Python.

Переходи на канал, и учись новому! Время двигаться вперёд!
​​Вывод строк текста не больше установленной ширины

Для выполненя данной задачи нам потребуетс встроенная библиотека textwrap, которая имеет функцию fill().
Первым аргементом передается сам текст, а вторым задается ширина строки в символах.
​​Вывод строк текста не больше установленной ширины

Для выполненя данной задачи нам потребуетс встроенная библиотека textwrap, которая имеет функцию fill().
Первым аргементом передается сам текст, а вторым задается ширина строки в символах.
​​Измерение времени выполнения фрагмента кода

Библиотека timeit отлично подходит для определения времени выполнения в Python. Просто передайте кусок кода в строковом формате методу timeit.timeit(), и он сделает 1 миллион выполнений, чтобы сообщить минимальное время, которое потребовалось для этой задачи.
​​Регулярные выражения. Замена шаблонов

Функция sub() библиотеки re ищет в строке определенный шаблон и заменяет его новым шаблоном.
Первый параметр – это регулярное выражение, которое ищет шаблон для замены. Второй параметр содержит новый текст, который вы хотите заменить на старый. Третий параметр – это строка, над которой выполняется «вспомогательная» операция.
​​Объединение словарей

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

Бывают ситуации, когда необходимо поменять местами ключи со значениями в python словаре. Сделать это можно следующим способом:
​​Удобное хранение значений

Модуль enum содержит в себе тип для перечисления значений с возможностью итерирования и сравнения. Его можно использовать для создания понятных обозначений вместо использования чисел или строк.
Для создания перечисления необходимо создать класc, являющийся наследником класса enum.Enum.
Атрибуты класса конвертируются в экземпляры при парсинге. Каждый экземпляр имеет параметр name, в котором хранится название, а также value, в котором хранится установленное значение.
​​Регулярные выражения. Поиск по шаблону в начале строки

Метод re.match(pattern, string) ищет сходства по заданному шаблону в начале строки. В случае, если искомая подстрока найдена, мы можем вывести её содержимое используя метод метод group()
​​Блок else в циклах

Блок else выполняется, если выполняется условие выхода из цикла. Это значит, что если цикл прерывается как-то иначе, например, ключевым словом break или исключением, то блок else выполнен не будет.
​​Упрощенный вывод с f-строками

f-strings являются строковыми литералами с «f» в начале и фигурными скобками, содержащие выражения, которые в дальнейшем будут заменены своими значениями.
С версией языка 3.8 и выше можно выводить имя переменной и сразу ее значение, добавив знак равно после имени переменной
​​Генерация случайных значений с помощью модуля secrets

Встроенный модуль secrets используется для генерации криптографически стойких случайных чисел, с помощью средств предоставляемых операционной системой. Что хорошо подходит при работе с паролями, токенами аутентификации.
Функция token_urlsafe(n) возвращает URL-безопасную строку, содержащую n байт, закодированную в Base64.
​​Построение графиков с помощью библиотеки matplotlib

Сначала создадим массив с данными, которые мы хотим изобразить на графике. Это может быть, например, список или numpy массив.

Функция plot(data) принимает наши данные и строит график в виде точек с координатами из массива и обьединяет их линиями.

Функция show() откроет графическое окно с изображенным графиком.

Не забудьте установить библиотеку командой pip install matplotlib
​​Множественное присваивание

В python вы же можете выполнять множественное присваивание разных значений разным переменным.

Множественное присваивание можно использовать не только с кортежами, но и списками, строками и любыми iterable типами. Его плюс в том, что оно позволяет не использовать индексы, а значит, уменьшает склонность к ошибкам и делает код читаемее.
​​Перевод чисел из десятичной дроби в обычную

У класса float есть прекрасный метод as_integer_ratio(), который представляет десятичную дробь в виде обычной — пары «числитель, знаменатель».
​​Создание штрих-кода

Для выполнения данной задачи нам понадобится библиотека barcode. Установите ее командой pip install python-barcode в вашем терминале.
​​Удаление конца или начала строки

В Python 3.9 добавили методы, которые удаляют префикс или суффикс у строк