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

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

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

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
Beautiful soup

Когда вы вытаскиваете HTML с какого-то сайта, то сначала проводите его разбор и отсекаете все ненужное. Beautiful Soup — это Python-библиотека по сбору данных из HTML и XML-файлов. В ней представлены простые методы для навигации, поиска и изменения дерева разбора, или парсинга. Это очень мощная библиотека, которая умеет обрабатывать все виды HTML, даже если он сломан. Уж поверьте моему опыту, HTML ломается довольно часто, поэтому такая функция окажется как нельзя кстати.

🔗 Python tricks
Flask

Flask — это моя любимая библиотека для создания быстрых веб-сервисов или простых сайтов. Flask — это микрофреймворк. Его задача — сделать ядро простым и расширяемым. Всего для Flask написано свыше 700 расширений — как официальных, так и созданных сообществом.

Если вы знаете, что в скором времени займетесь разработкой крупного веб-приложения, то стоит присмотреться к полноценному фреймворку. Самым популярным в этой категории считается Django.

🔗 Python tricks
pathlib.PureWindowsPath()

В модуле pathlib функция pathlib.PureWindowsPath() используется для создания объекта пути Windows. Этот объект представляет собой путь в файловой системе Windows, но не выполняет никаких операций ввода-вывода.

Аргумент path может быть строкой, представляющей путь Windows, или другим объектом пути, который можно привести к типу PureWindowsPath.

🔗 Python tricks
struct.Struct()

Модуль struct позволяет преобразовывать между Python-значениями и C-структурами, представленными как объекты bytes. Компактные форматные строки описывают предполагаемые преобразования в/из Python-значений.

Синтаксис:
struct.Struct(format_string)


Аргументы:
format_string — строка формата, описывающая структуру.

🔗 Python tricks
Конвертация PDF-файла в аудиокнигу

Данный код позволяет конвертировать текст в формате PDF в речь и речь в формат PDF. Этот проект не только облегчает работу по набору текста, но и доставляет удовольствие слушать любимые книги. В первом случае пользователь вводит начальную и конечную страницы, а затем выбирает PDF-файл для прослушивания. В последнем случае пользователь вводит путь, по которому необходимо сохранить PDF-файл, и выбирает файл mp3 или wav для преобразования в PDF. Предварительно тебе нужно установить библиотеки:

pip install tkinter
pip install path
pip install pyttsx3
pip install pydub
pip install PyPDF4
pip install SpeechRecognition


🔗 Python tricks
NotImplemented

Хотя ошибка NotImplemented является одной из самых распространённых, я считаю важным напомнить о ней в очередной раз. Выброс NotImplemented в Python не приводит к выбросу ошибки NotImplemented, вместо этого выбрасывается TypeError.

🔗 Python tricks
Snowballstemmer

Библиотека Snowballstemmer предоставляет функциональность стемминга, то есть преобразования слов в их базовую форму.

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

*Стемминг применяется в поисковых системах для расширения поискового запроса пользователя, является частью процесса нормализации текста.

🔗 Python tricks
IceCream

IceCream — это библиотека, которая предоставляет простой и эффективный способ отладки кода. Вместо того чтобы использовать функцию print() для отладки, вы можете использовать функцию ic() из библиотеки IceCream, которая позволяет вам инспектировать переменные, выражения и выполнение программы с помощью одного простого вызова функции.

В этом примере кода вывод ic| указывает на то, что это вывод от IceCream, а result: 6 — имя переменной и ее значение.

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

🔗 Python tricks
Telethon

Telethon — это библиотека Python, которая позволяет вам взаимодействовать с API Telegram.
Вы можете отправлять, получать или ждать новых сообщений Telegram внутри вашего Python-приложения. Вы также можете отправлять файлы контакту или группе контактов.

В этом примере мы настраиваем автоматическое отправление файлов в группу.

*Для работы этого кода вам нужно только получить ID и хэш Telegram API (что можно сделать за несколько минут).

🔗 Python tricks
Копирование!

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

🔗 Python tricks
Изменяемые значения по умолчанию 

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

🔗 Python tricks
4 ситуации из жизни лямбда-функций в Python. Сортировка последовательности данных 

Первый допустимый вариант использования — сортировка последовательности данных при помощи встроенной функции sorted(). Если вы знакомы с методами списков объектов, то, скорее всего, вам известен похожий метод sort(), который может сортировать объекты в списке в нужном порядке. Функция sorted() используется во многих ситуациях. 

🔗 Python tricks
typing.Literal

typing.Literal — это тип данных, который позволяет указать не просто какой-то тип вроде str, int или float, а конкретное значение этого типа.

Например, Literal[42] означает, что в качестве значения ожидается только 42. Важно, что проверяется не только равенство значения, но и его тип (например, нельзя будет использовать False, если ожидается 0).

🔗 Python tricks
Функция itertools.chain()

Функция itertools.chain() в Python объединяет несколько итераторов в один. Она принимает в качестве аргумента один или несколько итераторов, и возвращает итератор, который последовательно возвращает элементы из этих итераторов.

Например, код сверху объединяет две строки в одну.

🔗 Python tricks
4 ситуации из жизни лямбда-функций в Python. Нахождение минимальных и максимальных значений 

Для нахождения минимального и максимального значений в наборе данных можно использовать две встроенные функции, а именно min() и max(). Принцип использования обоих методов идентичен. В большинстве случаев мы предоставляем итерируемый объект, состоящий из нескольких элементов. Задавая аргумент key, мы можем получить искомые минимальные и максимальные значения по тому же принципу, что и в случае с функцией sorted()

🔗 Python tricks
4 ситуации из жизни лямбда-функций в Python. Использование в качестве фабричной функции 

Вероятно, вам известно, что помимо встроенного типа словаря dict, в нашем распоряжении есть еще другой словарь под названием defaultdict. Этот класс является подклассом типа dict, который доступен в модуле collections. Конструктор defaultdict представляет собой defaultdict([default_factory[, ...]]). default_factory вызывается для создания значения при условии, что в словаре еще нет заданного ключа. 

🔗 Python tricks
string.capitalize

Метод capitalize() преобразует первый символ строки в прописную букву, а все остальные буквы алфавита в нижний регистр. Данный метод возвращает новую строку и не изменяет исходную строку.

🔗 Python tricks
Принцип открытости/закрытости (OCP)

Принцип открытости/закрытости (OCP) — один из основополагающих принципов объектно-ориентированного программирования (ООП), сформулированный Бертраном Мейером. Он гласит: Программные сущности (классы, модули, функции и т. п.) должны быть открыты для расширения, но закрыты для изменения.

Иными словами код должен быть легко расширяемым для добавления новых функций или поведения. Существующий код не должен меняться при добавлении новых функций.

🔗 Python tricks
Функция heapq.heapify()

Функция heapq.heapify() используется для преобразования списка в кучу (heap). Куча — это особая структура данных, представляющая собой полное бинарное дерево, в котором каждый родительский элемент меньше или равен своим дочерним элементам.

🔗 Python tricks
4 ситуации из жизни лямбда-функций в Python. Использование лямбда с функциями высшего порядка (не самый лучший способ) 

Под функциями высшего порядка подразумеваются такие функции, как map() и filter(). Важно помнить, что всё в Python является объектом, включая функции. Функции, принимающие другие функции в качестве аргументов или возвращающие их в качестве результата, называются функциями высшего порядка. 

🔗 Python tricks