Just Python
11.2K subscribers
3.66K photos
11 videos
3.65K links
🐍Простое изучение Python.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: telega.in/c/justpython_it

РКН: clck.ru/3MnbSc
Download Telegram
Распаковка аргументов с * и ** — элегантная передача параметров

Иногда нужно передать переменное количество аргументов в функцию или вызвать функцию с уже готовыми аргументами в виде кортежа или словаря. Python позволяет делать это красиво с помощью *args и kwargs.

Это особенно удобно, если вы оборачиваете функции, строите декораторы или работаете с конфигами.

Итог:
Использование * и
позволяет гибко управлять аргументами и упрощает передачу данных в функции — лаконично и читаемо.

#theory // Just Python
Проверка типов во время разработки с typing.assert_type

Иногда полезно явно указать ожидаемый тип переменной — особенно при сложных аннотациях или когда IDE не даёт точной подсказки. Python 3.11+ предоставляет утилиту typing.assert_type для таких целей.

Во время выполнения assert_type не делает ничего — он нужен только для анализа типизации инструментами, как mypy или Pyright.

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

#theory // Just Python
Ускорение многозадачности с concurrent.futures.ThreadPoolExecutor

Когда тебе нужно выполнить несколько I/O-зависимых задач (например, запросы к API или чтение файлов), но ты не хочешь возиться с asyncio, можно использовать ThreadPoolExecutor — просто и эффективно.

Итог:
ThreadPoolExecutor — мощный способ ускорить I/O-операции с минимальными усилиями. Особенно удобен, если не хочется переписывать проект под asyncio.

#theory // Just Python
Умный анализатор голосовых сообщений

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

Ссылка на код

#theory // Just Python
Удаление дубликатов из вложенных списков

Иногда нужно удалить дубликаты из списка списков — но set тут не работает напрямую, ведь списки — неизменяемые. Есть простое решение!

Итог:
Для удаления дубликатов из списка списков — конвертируй во tuple, используй set, потом верни всё обратно. Быстро и без лишних циклов.

#theory // Just Python
Pympler для мониторинга и анализа памяти

Библиотека мониторит и анализирует память, которая используется при исполнении кода программ на Python. Инструмент находит ее избыточное потребление, утечки и другие баги.

С помощью Pympler можно узнать все о размере и длительности процессов приложения на Python за время работы.

Ссылочка на доку

#theory // Just Python
Bidict

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

#theory // Just Python
Быстрая проверка скорости кода с timeit

Когда нужно узнать, какой из двух подходов быстрее — используй модуль timeit.

Итог:
Используй timeit, чтобы быстро сравнить производительность разных решений. Особенно полезно при выборе между похожими по смыслу, но разными по скорости подходами.

#theory // Just Python
Умное логгирование исключений с exc_info=True

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

Итог:
Добавляй exc_info=True к логгированию исключений — получишь полный стек и не потеряешь важные детали при отладке.

#theory // Just Python
Полезные библиотеки Python

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

Хочешь, чтобы скрипт приветствовал пользователя крутым заголовком?
Пишешь CLI-интерфейс или просто хочешь выделиться?

ART — это быстро, просто и эффектно.

Установка:

pip install art


GitHub/Инструкция и примеры кода

#theory // Just Python
Как использовать Pymystem3 для морфологического анализа?

Библиотека быстро и качественно распознает части речи и лексемы слова.

Третья версия Mystem содержит несколько важных улучшений, в первую очередь устранение неоднозначности частей речи

Ссылочка на доку

#theory // Just Python
Использование __slots__ для экономии памяти

По умолчанию Python хранит атрибуты объектов в словаре (dict), что удобно, но затратно по памяти. Если вы создаёте множество однотипных объектов, можно использовать slots, чтобы ограничить список допустимых атрибутов и сократить потребление памяти.

#theory // Just Python
Как использовать контекстный менеджер для безопасной работы с БД

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

Итог:
Используй with при работе с базой данных — это гарантирует автоматическое закрытие соединения и делает код надёжнее и чище.

#theory // Just Python
Генератор Фибоначчи

Последовательность Фибоначчи — ряд чисел, где каждое последующее число равно сумме двух предыдущих. Пример: 1, 1, 2, 3, 5, 8, 13. Используется в программировании. Любое число может быть записано как сумма уникальных чисел Фибоначчи. На примере представлен простейший генератор.

#theory // Just Python
Знакомство с BeatifulSoup

BeatifulSoup - библиотека предназначенная для парсинга html и xml файлов. В комплекте все, что необходимо для парсинга нужных элементов. Используется в промышленных масшатабах. Умеет проходиться по дереву, парсить группы элементов.

В примере, парсим html документ. С самым простым содержимым.

#theory // Just Python
Взаимодействие с ОС

Для взаимодействия с операционной системой в Python предусмотрен встроенный модуль OS. Позволяет узнать информацию о системе, создавать файлы, папки, переименовывать. На борту базовый набор необходимых функций.

Полезно в любом проекте. Однако некоторые функции работают не со всеми операционными системами.

#theory // Just Python
Загружаем страницу из интернета

Для базовой загрузки страницы из интернета можем воспользоваться встроенной библиотекой urllib.requests.

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

#theory // Just Python
Шифрование встроенными средствами

Встроенная библиотека hashlib позволяет осуществлять шифрование различными алгоритмами.

Библиотека позволяет покрыть базовые потребности в шифровании. Для продвинутого шифрования нужен более серьезный функционал.

#theory // Just Python
Продвинутая итерация

Итерация с помощью функции for может быть куда шире, чем может показаться.

Функция enumerate() перебирает элементы итерируемого объекта с автоматической индексацией. Комбинируем с for — получаем отличный способ разобрать список.

#theory // Just Python
Формируем среду вывода

Часто приложение подразумевает свою систему вывода. Мы знаем, что наше приложение работает с именем и возрастом человека. У нас есть некое подобие базы данных в виде списка с данными. Удобно иметь свою функцию красивого вывода.

Функция format() позволяет также использовать позиционное форматирование, устанавливать порядок записи чисел с плавающей запятой, сокращения.

{:^6} Означает что от первого аргумента будет отступ (6) с заполнением. Выравнивание по центру (^).

#theory // Just Python