Just Python
11.5K subscribers
3.45K photos
9 videos
3.45K links
🐍Простое изучение Python.

Ссылка: @Portal_v_IT

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

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

РКН: № 5340634335
Download Telegram
Распознавание текста с документов

С помощью этого кода ты сможешь распознавать текст с документов на фотографиях. Работает все очень просто. Сначала принимаем фото документа. С помощью OCR распознаем текст. Затем фильтруем документ по типу: паспорт, ИНН, СНИЛС, ИПН и т.д. Предварительно нужно установить Tesseract OCR.

Ссылка на код

#theory // Just Python
Удобный способ подавить ошибки через contextlib.suppress

Иногда нужно игнорировать определённые исключения, не захламляя код try-except. Для этого идеально подходит contextlib.suppress.

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

#theory // Just Python
FlashText — Быстрый поиск и замена строк

FlashText — это библиотека Python, которая позволяет быстро находить и заменять ключевые слова в строках. В отличие от стандартных методов поиска, таких как регулярные выражения, FlashText работает с целыми словами и значительно быстрее на больших текстах. Эта библиотека особенно полезна, если нужно обрабатывать огромные массивы текстовых данных.

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

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

#theory // Just Python
Сканер уязвимостей в веб-сайтах

Сделаем простой сканер уязвимостей. Он проверяет SSL-сертификат, HTTP-заголовки безопасности, а также открытые порты. Обрати внимание, это информационный сканер, а не пентест-инструмент.

Ссылка на код

#theory // Just Python
Быстрое сравнение объектов через dataclasses

Если тебе нужно сравнивать экземпляры классов по значениям, а не по идентификаторам, используй @dataclass — это избавит от ручной реализации eq.

Итог:
@dataclass не только сокращает шаблонный код, но и позволяет автоматически сравнивать объекты по значению их полей — удобно и читаемо.

#theory // Just Python
Распаковка аргументов с * и ** — элегантная передача параметров

Иногда нужно передать переменное количество аргументов в функцию или вызвать функцию с уже готовыми аргументами в виде кортежа или словаря. 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