Проверка типов во время разработки с typing.assert_type
Иногда полезно явно указать ожидаемый тип переменной — особенно при сложных аннотациях или когда IDE не даёт точной подсказки. Python 3.11+ предоставляет утилиту
Во время выполнения
Итог:
#theory // Just Python
Иногда полезно явно указать ожидаемый тип переменной — особенно при сложных аннотациях или когда 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
Когда тебе нужно выполнить несколько I/O-зависимых задач (например, запросы к API или чтение файлов), но ты не хочешь возиться с asyncio, можно использовать ThreadPoolExecutor — просто и эффективно.
Итог:
ThreadPoolExecutor — мощный способ ускорить I/O-операции с минимальными усилиями. Особенно удобен, если не хочется переписывать проект под asyncio.
#theory // Just Python
Умный анализатор голосовых сообщений
Сделаем анализатор голосовых сообщений. С помощью его ты сможешь делать транскрипцию, анализировать длину, темп, эмоции аудиосообщения. Также возможна сводка сообщения и ключевые фразы. Для этого нам понадобится whisper – он преобразует речь в текст.
Ссылка на код
#theory // Just Python
Сделаем анализатор голосовых сообщений. С помощью его ты сможешь делать транскрипцию, анализировать длину, темп, эмоции аудиосообщения. Также возможна сводка сообщения и ключевые фразы. Для этого нам понадобится whisper – он преобразует речь в текст.
Ссылка на код
#theory // Just Python
Удаление дубликатов из вложенных списков
Иногда нужно удалить дубликаты из списка списков — но set тут не работает напрямую, ведь списки — неизменяемые. Есть простое решение!
Итог:
Для удаления дубликатов из списка списков — конвертируй во tuple, используй set, потом верни всё обратно. Быстро и без лишних циклов.
#theory // Just Python
Иногда нужно удалить дубликаты из списка списков — но set тут не работает напрямую, ведь списки — неизменяемые. Есть простое решение!
Итог:
Для удаления дубликатов из списка списков — конвертируй во tuple, используй set, потом верни всё обратно. Быстро и без лишних циклов.
#theory // Just Python
Pympler для мониторинга и анализа памяти
Библиотека мониторит и анализирует память, которая используется при исполнении кода программ на Python. Инструмент находит ее избыточное потребление, утечки и другие баги.
С помощью Pympler можно узнать все о размере и длительности процессов приложения на Python за время работы.
Ссылочка на доку
#theory // Just Python
Библиотека мониторит и анализирует память, которая используется при исполнении кода программ на Python. Инструмент находит ее избыточное потребление, утечки и другие баги.
С помощью Pympler можно узнать все о размере и длительности процессов приложения на Python за время работы.
Ссылочка на доку
#theory // Just Python
Bidict
Bidict — это библиотека Python, предоставляющая двунаправленное отображение данных и связанные с ним функции для естественной работы с однозначными отношениями.
#theory // Just Python
Bidict — это библиотека Python, предоставляющая двунаправленное отображение данных и связанные с ним функции для естественной работы с однозначными отношениями.
#theory // Just Python
Быстрая проверка скорости кода с timeit
Когда нужно узнать, какой из двух подходов быстрее — используй модуль
Итог:
Используй
#theory // Just Python
Когда нужно узнать, какой из двух подходов быстрее — используй модуль
timeit
.Итог:
Используй
timeit
, чтобы быстро сравнить производительность разных решений. Особенно полезно при выборе между похожими по смыслу, но разными по скорости подходами.#theory // Just Python
Умное логгирование исключений с exc_info=True
Когда ловишь исключение и хочешь залоггировать стек, многие забывают важный параметр.
Итог:
Добавляй exc_info=True к логгированию исключений — получишь полный стек и не потеряешь важные детали при отладке.
#theory // Just Python
Когда ловишь исключение и хочешь залоггировать стек, многие забывают важный параметр.
Итог:
Добавляй exc_info=True к логгированию исключений — получишь полный стек и не потеряешь важные детали при отладке.
#theory // Just Python
Полезные библиотеки Python
ART — минималистичная, но чертовски стильная библиотека для Python, с которой ты за секунду создашь красивый ASCII-логотип прямо в консоли.
Хочешь, чтобы скрипт приветствовал пользователя крутым заголовком?
Пишешь CLI-интерфейс или просто хочешь выделиться?
ART — это быстро, просто и эффектно.
Установка:
GitHub/Инструкция и примеры кода
#theory // Just Python
ART — минималистичная, но чертовски стильная библиотека для Python, с которой ты за секунду создашь красивый ASCII-логотип прямо в консоли.
Хочешь, чтобы скрипт приветствовал пользователя крутым заголовком?
Пишешь CLI-интерфейс или просто хочешь выделиться?
ART — это быстро, просто и эффектно.
Установка:
pip install art
GitHub/Инструкция и примеры кода
#theory // Just Python
Как использовать Pymystem3 для морфологического анализа?
Библиотека быстро и качественно распознает части речи и лексемы слова.
Третья версия Mystem содержит несколько важных улучшений, в первую очередь устранение неоднозначности частей речи
Ссылочка на доку
#theory // Just Python
Библиотека быстро и качественно распознает части речи и лексемы слова.
Третья версия Mystem содержит несколько важных улучшений, в первую очередь устранение неоднозначности частей речи
Ссылочка на доку
#theory // Just Python
Использование __slots__ для экономии памяти
По умолчанию Python хранит атрибуты объектов в словаре (dict), что удобно, но затратно по памяти. Если вы создаёте множество однотипных объектов, можно использовать slots, чтобы ограничить список допустимых атрибутов и сократить потребление памяти.
#theory // Just Python
По умолчанию Python хранит атрибуты объектов в словаре (dict), что удобно, но затратно по памяти. Если вы создаёте множество однотипных объектов, можно использовать slots, чтобы ограничить список допустимых атрибутов и сократить потребление памяти.
#theory // Just Python
Как использовать контекстный менеджер для безопасной работы с БД
Многие новички забывают закрывать соединения с базой данных, что может привести к утечкам ресурсов и блокировкам. Контекстный менеджер (with) упрощает работу с базой и автоматически закрывает соединение даже при ошибках.
Итог:
Используй with при работе с базой данных — это гарантирует автоматическое закрытие соединения и делает код надёжнее и чище.
#theory // Just Python
Многие новички забывают закрывать соединения с базой данных, что может привести к утечкам ресурсов и блокировкам. Контекстный менеджер (with) упрощает работу с базой и автоматически закрывает соединение даже при ошибках.
Итог:
Используй with при работе с базой данных — это гарантирует автоматическое закрытие соединения и делает код надёжнее и чище.
#theory // Just Python
Генератор Фибоначчи
Последовательность Фибоначчи — ряд чисел, где каждое последующее число равно сумме двух предыдущих. Пример: 1, 1, 2, 3, 5, 8, 13. Используется в программировании. Любое число может быть записано как сумма уникальных чисел Фибоначчи. На примере представлен простейший генератор.
#theory // Just Python
Последовательность Фибоначчи — ряд чисел, где каждое последующее число равно сумме двух предыдущих. Пример: 1, 1, 2, 3, 5, 8, 13. Используется в программировании. Любое число может быть записано как сумма уникальных чисел Фибоначчи. На примере представлен простейший генератор.
#theory // Just Python
Знакомство с BeatifulSoup
BeatifulSoup - библиотека предназначенная для парсинга html и xml файлов. В комплекте все, что необходимо для парсинга нужных элементов. Используется в промышленных масшатабах. Умеет проходиться по дереву, парсить группы элементов.
В примере, парсим html документ. С самым простым содержимым.
#theory // Just Python
BeatifulSoup - библиотека предназначенная для парсинга html и xml файлов. В комплекте все, что необходимо для парсинга нужных элементов. Используется в промышленных масшатабах. Умеет проходиться по дереву, парсить группы элементов.
В примере, парсим html документ. С самым простым содержимым.
#theory // Just Python
Взаимодействие с ОС
Для взаимодействия с операционной системой в Python предусмотрен встроенный модуль OS. Позволяет узнать информацию о системе, создавать файлы, папки, переименовывать. На борту базовый набор необходимых функций.
Полезно в любом проекте. Однако некоторые функции работают не со всеми операционными системами.
#theory // Just Python
Для взаимодействия с операционной системой в Python предусмотрен встроенный модуль OS. Позволяет узнать информацию о системе, создавать файлы, папки, переименовывать. На борту базовый набор необходимых функций.
Полезно в любом проекте. Однако некоторые функции работают не со всеми операционными системами.
#theory // Just Python
Загружаем страницу из интернета
Для базовой загрузки страницы из интернета можем воспользоваться встроенной библиотекой urllib.requests.
Функция urlopen позволяет загрузить страничку. Однако при использовании подобного метода страница загрузится без элементов загруженных с помощью javascript и других серверных технологий.
#theory // Just Python
Для базовой загрузки страницы из интернета можем воспользоваться встроенной библиотекой urllib.requests.
Функция urlopen позволяет загрузить страничку. Однако при использовании подобного метода страница загрузится без элементов загруженных с помощью javascript и других серверных технологий.
#theory // Just Python
Шифрование встроенными средствами
Встроенная библиотека hashlib позволяет осуществлять шифрование различными алгоритмами.
Библиотека позволяет покрыть базовые потребности в шифровании. Для продвинутого шифрования нужен более серьезный функционал.
#theory // Just Python
Встроенная библиотека hashlib позволяет осуществлять шифрование различными алгоритмами.
Библиотека позволяет покрыть базовые потребности в шифровании. Для продвинутого шифрования нужен более серьезный функционал.
#theory // Just Python
Продвинутая итерация
Итерация с помощью функции for может быть куда шире, чем может показаться.
Функция enumerate() перебирает элементы итерируемого объекта с автоматической индексацией. Комбинируем с for — получаем отличный способ разобрать список.
#theory // Just Python
Итерация с помощью функции for может быть куда шире, чем может показаться.
Функция enumerate() перебирает элементы итерируемого объекта с автоматической индексацией. Комбинируем с for — получаем отличный способ разобрать список.
#theory // Just Python
Формируем среду вывода
Часто приложение подразумевает свою систему вывода. Мы знаем, что наше приложение работает с именем и возрастом человека. У нас есть некое подобие базы данных в виде списка с данными. Удобно иметь свою функцию красивого вывода.
Функция format() позволяет также использовать позиционное форматирование, устанавливать порядок записи чисел с плавающей запятой, сокращения.
{:^6} Означает что от первого аргумента будет отступ (6) с заполнением. Выравнивание по центру (^).
#theory // Just Python
Часто приложение подразумевает свою систему вывода. Мы знаем, что наше приложение работает с именем и возрастом человека. У нас есть некое подобие базы данных в виде списка с данными. Удобно иметь свою функцию красивого вывода.
Функция format() позволяет также использовать позиционное форматирование, устанавливать порядок записи чисел с плавающей запятой, сокращения.
{:^6} Означает что от первого аргумента будет отступ (6) с заполнением. Выравнивание по центру (^).
#theory // Just Python
Как использовать составной вывод?
Простой способ — сложение (конкатенация) строк. Хорошо с одной переменной в строке, а если их больше — читается с трудом.
Функция format() позволяет формировать понятный вывод не только для пользователя, но и для программиста.
#theory // Just Python
Простой способ — сложение (конкатенация) строк. Хорошо с одной переменной в строке, а если их больше — читается с трудом.
print('Hello ' + name + ' — ' + str(age) + ' y.o.')
Функция format() позволяет формировать понятный вывод не только для пользователя, но и для программиста.
print('Hello {} — {} y.o.'.format(name, age))
Python последовательно проставляет номера для скобок и передает им значения переменных, последовательно указанных в аргументе.#theory // Just Python