dataclasses — это модуль в стандартной библиотеке, предназначенный для упрощения создания классов данных.
Он предоставляет декоратор и набор инструментов, которые автоматически генерируют основные методы класса, такие как
В примере выше мы используем декоратор @dataclass, чтобы автоматически сгенерировать методы класса Point. Мы определяем поля x, y и z, которые представляют координаты точки. После создания экземпляра класса Point с помощью аргументов конструктора, мы можем напрямую выводить информацию о точке, таreprтод
Подробнее здесь
Разъяснивший Python
Он предоставляет декоратор и набор инструментов, которые автоматически генерируют основные методы класса, такие как
__init__()
, __repr__()
, __eq__()
, и другие. Это упрощает создание классов, которые служат простым хранилищем данных, без необходимости вручную определять все методыВ примере выше мы используем декоратор @dataclass, чтобы автоматически сгенерировать методы класса Point. Мы определяем поля x, y и z, которые представляют координаты точки. После создания экземпляра класса Point с помощью аргументов конструктора, мы можем напрямую выводить информацию о точке, таreprтод
__repr__()
автоматически сгенерирован. Это делает код более лаконичным и удобным для использования.Подробнее здесь
Разъяснивший Python
👍1
Создание видео из изображений
В этот раз мы сделаем скрипт для создания видео. Он будет объединять набор изображений в видеоролик, добавлять фоновую музыку, а также позволит настроить скорость смены кадров. В результате получится готовое MP4-видео!
Ссылка на код
Разъяснивший Python
В этот раз мы сделаем скрипт для создания видео. Он будет объединять набор изображений в видеоролик, добавлять фоновую музыку, а также позволит настроить скорость смены кадров. В результате получится готовое MP4-видео!
Ссылка на код
Разъяснивший Python
❤1
Как объединять цепочки условий красиво и читаемо
Иногда логика с множеством if становится громоздкой. В таких случаях удобно использовать словарь как аналог switch-case.
Итог:
Словарь заменяет кучу
Разъяснивший Python
Иногда логика с множеством if становится громоздкой. В таких случаях удобно использовать словарь как аналог switch-case.
Итог:
Словарь заменяет кучу
if-elif-else
, делает код чище и облегчает добавление новых случаев. Особенно полезно, когда условия связаны с конкретными значениями (например, кодами, командами или ролями).Разъяснивший Python
range() — встроенная функция, которая создает последовательность чисел в заданном диапазоне.
range() используется для создания последовательности чисел. Она принимает три параметра: начальное значение(по умолчанию 0), конечное значение и шаг(по умолчанию 1). При вызове функции range() она возвращает объект типа range, который можно использовать в циклах или для создания списков.
В примере выше мы используем функцию range() для создания последовательности чисел от 1 до 10 с шагом 2. Цикл for проходит по каждому элементу этой последовательности и выводит его значение.
Подробнее тут
Разъяснивший Python
range() используется для создания последовательности чисел. Она принимает три параметра: начальное значение(по умолчанию 0), конечное значение и шаг(по умолчанию 1). При вызове функции range() она возвращает объект типа range, который можно использовать в циклах или для создания списков.
В примере выше мы используем функцию range() для создания последовательности чисел от 1 до 10 с шагом 2. Цикл for проходит по каждому элементу этой последовательности и выводит его значение.
Подробнее тут
Разъяснивший Python
ffmpeg — это свободное и открытое программное обеспечение, предоставляющее набор инструментов для записи, преобразования и манипулирования аудио и видео файлами.
С помощью ffmpeg вы можете выполнять различные операции над аудио и видео файлами, такие как конвертация форматов, изменение разрешения, наложение фильтров, обрезка, склеивание и многое другое. Благодаря своей гибкости и мощности, ffmpeg является популярным выбором для разработчиков, работающих с мультимедиа
В примере выше мы используем модуль subprocess для вызова команды ffmpeg из Python. Мы указываем входной файл input.mp4 и желаемый выходной файл output.avi. После этого мы создаем команду ffmpeg и передаем ее в subprocess.call().
Таким образом, при выполнении этого кода ffmpeg сконвертирует входной видеофайл input.mp4 в формат AVI и сохранит его как output.avi.
Подробнее тут
Разъяснивший Python
С помощью ffmpeg вы можете выполнять различные операции над аудио и видео файлами, такие как конвертация форматов, изменение разрешения, наложение фильтров, обрезка, склеивание и многое другое. Благодаря своей гибкости и мощности, ffmpeg является популярным выбором для разработчиков, работающих с мультимедиа
В примере выше мы используем модуль subprocess для вызова команды ffmpeg из Python. Мы указываем входной файл input.mp4 и желаемый выходной файл output.avi. После этого мы создаем команду ffmpeg и передаем ее в subprocess.call().
Таким образом, при выполнении этого кода ffmpeg сконвертирует входной видеофайл input.mp4 в формат AVI и сохранит его как output.avi.
Подробнее тут
Разъяснивший Python
Как замерить время выполнения кода элегантно
Иногда нужно узнать, сколько времени занял блок кода — для отладки, оптимизации или просто интереса. Вместо громоздких решений можно использовать контекстный менеджер.
Итог:
Контекстный менеджер timeit позволяет быстро замерять производительность без лишнего шума. Особенно полезен при профилировании отдельных участков кода.
Разъяснивший Python
Иногда нужно узнать, сколько времени занял блок кода — для отладки, оптимизации или просто интереса. Вместо громоздких решений можно использовать контекстный менеджер.
Итог:
Контекстный менеджер timeit позволяет быстро замерять производительность без лишнего шума. Особенно полезен при профилировании отдельных участков кода.
Разъяснивший Python
👍1👎1
pynacl — библиотека, обеспечивающая простой и безопасный доступ к криптографическим функциям, основанным на библиотеке Networking and Cryptography (NaCl).
pynacl предоставляет надежные инструменты для решения задач, связанных с криптографией, такие как шифрование, подпись сообщений, хэширование и генерация случайных чисел. Она обеспечивает высокий уровень безопасности и надежности, что делает ее идеальным выбором для приложений, требующих защиты данных и обеспечения целостности информации.
На примере выше у нас есть два скрипта: один для шифрования сообщения, а другой для его расшифровки. Используя pynacl, мы можем безопасно передать зашифрованное сообщение от отправителя к получателю.
Разъяснивший Python
pynacl предоставляет надежные инструменты для решения задач, связанных с криптографией, такие как шифрование, подпись сообщений, хэширование и генерация случайных чисел. Она обеспечивает высокий уровень безопасности и надежности, что делает ее идеальным выбором для приложений, требующих защиты данных и обеспечения целостности информации.
На примере выше у нас есть два скрипта: один для шифрования сообщения, а другой для его расшифровки. Используя pynacl, мы можем безопасно передать зашифрованное сообщение от отправителя к получателю.
Разъяснивший Python
collections — встроенный модуль, который предоставляет удобные и эффективные инструменты для обработки и работы с различными типами данных.
collections включает в себя специализированные контейнеры, которые расширяют функциональность встроенных типов данных и позволяют более эффективно решать различные задачи.
Недавно мы показывали некоторые классы из модуля collections, однако про сам модуль не рассказали.
Подробнее тут
Разъяснивший Python
collections включает в себя специализированные контейнеры, которые расширяют функциональность встроенных типов данных и позволяют более эффективно решать различные задачи.
Недавно мы показывали некоторые классы из модуля collections, однако про сам модуль не рассказали.
Подробнее тут
Разъяснивший Python
Как элегантно объединять словари с приоритетом значений
Часто нужно объединить два словаря, где значения из второго имеют приоритет. Это можно сделать просто и читаемо.
Итог:
Синтаксис {**dict1, **dict2} объединяет словари, давая приоритет второму. Удобен для настройки конфигураций, параметров и всего, что связано с override'ами.
Разъяснивший Python
Часто нужно объединить два словаря, где значения из второго имеют приоритет. Это можно сделать просто и читаемо.
Итог:
Синтаксис {**dict1, **dict2} объединяет словари, давая приоритет второму. Удобен для настройки конфигураций, параметров и всего, что связано с override'ами.
Разъяснивший Python
Ускоряем Python в сто раз при помощи менее чем ста строк на Rust
Статья описывает проблему с производительностью большой и сложной Python-библиотеки для 3D-обработки и рассказывает, как её удалось ускорить в сто раз при помощи Rust. Автор представляет несколько итераций оптимизации, которые могут помочь в решении подобных проблем с производительностью.
Читать...
Разъяснивший Python
Статья описывает проблему с производительностью большой и сложной Python-библиотеки для 3D-обработки и рассказывает, как её удалось ускорить в сто раз при помощи Rust. Автор представляет несколько итераций оптимизации, которые могут помочь в решении подобных проблем с производительностью.
Читать...
Разъяснивший Python
Хабр
Ускоряем Python в сто раз при помощи менее чем ста строк на Rust
Однажды на работе у нас возникла проблема с производительностью одной из наших основных Python-библиотек. Эта библиотека формирует фундамент нашего конвейера 3D-обработки. Это довольно большая и...
Faker — полезная библиотека, которая поможет вам создавать реалистичные тестовые данные.
Независимо от того, нужны ли вам данные для тестирования, заполнения базы данных или демонстрации функционала, Faker делает процесс генерации данных простым и эффективным.
Faker предоставляет генераторы для различных типов данных, таких как имена, адреса, номера телефонов, электронные почты, даты, текст и многое другое. Это идеальное решение для тех, кто хочет ускорить процесс тестирования.
На примере выше мы написали функцию generate_fake_user, которая использует различные методы Faker, чтобы создать случайные данные для имени, электронной почты, номера телефона и адреса. Затем мы выводим полученные данные о пользователе.
Ставится командой ⚙️
Разъяснивший Python
Независимо от того, нужны ли вам данные для тестирования, заполнения базы данных или демонстрации функционала, Faker делает процесс генерации данных простым и эффективным.
Faker предоставляет генераторы для различных типов данных, таких как имена, адреса, номера телефонов, электронные почты, даты, текст и многое другое. Это идеальное решение для тех, кто хочет ускорить процесс тестирования.
На примере выше мы написали функцию generate_fake_user, которая использует различные методы Faker, чтобы создать случайные данные для имени, электронной почты, номера телефона и адреса. Затем мы выводим полученные данные о пользователе.
Ставится командой ⚙️
pip3 install faker
Документация и примеры кода здесь Разъяснивший Python
rembg - это библиотека для удаления фона у любого изображения.
Работает с помощью нейронной сети.
И также является консольной утилитой.
Открыть изображение можно как массив байтов, либо через PIL.
Оба варианта rembg понимает.
А для удаления фона достаточно импортировать и вызвать метод
Ставится командой ⚙️
Разъяснивший Python
Работает с помощью нейронной сети.
И также является консольной утилитой.
Открыть изображение можно как массив байтов, либо через PIL.
Оба варианта rembg понимает.
А для удаления фона достаточно импортировать и вызвать метод
remove(input)
.Ставится командой ⚙️
pip install rembg[gpu,cli]
Документация и примеры кода здесь.Разъяснивший Python
Я не люблю NumPy
В статье рассказывают о противоречивой любви к NumPy: мощный инструмент для работы с массивами, который иногда сводит с ума своей непредсказуемостью и странностями
Читать...
Разъяснивший Python
В статье рассказывают о противоречивой любви к NumPy: мощный инструмент для работы с массивами, который иногда сводит с ума своей непредсказуемостью и странностями
Читать...
Разъяснивший Python
Хабр
Я не люблю NumPy
Говорят, что невозможно возненавидеть кого-то, если сначала не полюбил его. Не знаю, справедливо ли это в целом, но это определённо описывает моё отношение к NumPy. NumPy — это ПО для выполнения...
Используйте функцию enumerate для перебора элементов списка и их индексов
enumerate - это встроенная функция, которая принимает список и возвращает объект, который можно использовать в цикле for для перебора элементов списка и их соответствующих индексов.
Разъяснивший Python
enumerate - это встроенная функция, которая принимает список и возвращает объект, который можно использовать в цикле for для перебора элементов списка и их соответствующих индексов.
Разъяснивший Python
Scikit-learn - это широко используемая библиотека для машинного обучения на Python. Она построена поверх NumPy и SciPy и предлагает широкий спектр инструментов для создания и оценки моделей машинного обучения. Scikit-learn отлично подходит для построения традиционных моделей машинного обучения, таких как линейная регрессия, деревья решений и кластеризация k-средних.
Как использовать scikit-learn, чтобы построить простую модель линейной регрессии представлено на картинке
Ставится командой ⚙️
Разъяснивший Python
Как использовать scikit-learn, чтобы построить простую модель линейной регрессии представлено на картинке
Ставится командой ⚙️
pip install -U scikit-learn
Документация и примеры кода здесьРазъяснивший Python
Ограничение времени выполнения кода с signal
Когда нужно завершать долгие операции (например, при парсинге или работе с API), полезно уметь ставить таймаут на блок кода.
Итог:
Модуль signal позволяет элегантно ограничивать время выполнения операций. Особенно полезен при работе с нестабильными внешними источниками или написании защищённых CLI-утилит. Работает только в UNIX-системах.
Разъяснивший Python
Когда нужно завершать долгие операции (например, при парсинге или работе с API), полезно уметь ставить таймаут на блок кода.
Итог:
Модуль signal позволяет элегантно ограничивать время выполнения операций. Особенно полезен при работе с нестабильными внешними источниками или написании защищённых CLI-утилит. Работает только в UNIX-системах.
Разъяснивший Python
👍2
Что такое асинхронное программирование в Python
Асинхронное программирование является подходом в разработке программного обеспечения, который позволяет одновременно выполнять несколько задач без блокирования основного потока выполнения.
Преимущества асинхронного программирования включают:
Более эффективное использование ресурсов
Улучшенная отзывчивость приложений
Упрощение кода для параллельного выполнения задач
Основы асинхронного программирования в Python
Для использования асинхронного программирования в Python, необходимо знакомство с ключевыми словами async и await:
async используется для объявления асинхронной функции. Это означает, что функция будет возвращать объект coroutine, который можно выполнить асинхронно.
await используется внутри асинхронной функции для ожидания результата другой асинхронной операции. Это позволяет основному потоку продолжить выполнение других задач, пока ожидается результат.
Разъяснивший Python
Асинхронное программирование является подходом в разработке программного обеспечения, который позволяет одновременно выполнять несколько задач без блокирования основного потока выполнения.
Преимущества асинхронного программирования включают:
Более эффективное использование ресурсов
Улучшенная отзывчивость приложений
Упрощение кода для параллельного выполнения задач
Основы асинхронного программирования в Python
Для использования асинхронного программирования в Python, необходимо знакомство с ключевыми словами async и await:
async используется для объявления асинхронной функции. Это означает, что функция будет возвращать объект coroutine, который можно выполнить асинхронно.
await используется внутри асинхронной функции для ожидания результата другой асинхронной операции. Это позволяет основному потоку продолжить выполнение других задач, пока ожидается результат.
Разъяснивший Python
Pandas - это библиотека для обработки и анализа данных на Python.
Она широко используется для работы со структурированными данными и отлично подходит для очистки, преобразования и анализа данных. Pandas имеет широкий спектр инструментов для работы с данными, включая объекты dataframe и series, которые похожи на таблицы и столбцы в SQL.
Как использовать Pandas для загрузки и изучения набора данных представлены на фотографии
Ставится командой ⚙️
Разъяснивший Python
Она широко используется для работы со структурированными данными и отлично подходит для очистки, преобразования и анализа данных. Pandas имеет широкий спектр инструментов для работы с данными, включая объекты dataframe и series, которые похожи на таблицы и столбцы в SQL.
Как использовать Pandas для загрузки и изучения набора данных представлены на фотографии
Ставится командой ⚙️
pip install cython
Документация и примеры кода здесьРазъяснивший Python
🤔1
Автоматический резюме-аналитик
Данная программа позволяет загружать .pdf или .docx файл с резюме, извлекает ключевые навыки, опыт, контакты, и формирует краткий отчет. В результате можно разобрать резюме без ручного чтения – отличный инструмент для HR, рекрутеров или разработчиков.
Ссылка на код
Разъяснивший Python
Данная программа позволяет загружать .pdf или .docx файл с резюме, извлекает ключевые навыки, опыт, контакты, и формирует краткий отчет. В результате можно разобрать резюме без ручного чтения – отличный инструмент для HR, рекрутеров или разработчиков.
Ссылка на код
Разъяснивший Python
Глубокая заморозка объектов с types.MappingProxyType
Иногда нужно создать словарь, который нельзя изменить — например, для констант или конфигурации. Вместо копирования или заморозки вручную, можно использовать MappingProxyType.
Итог:
MappingProxyType создаёт читаемую, но неизменяемую обёртку над словарём — отличный способ защитить данные от случайного изменения, особенно в конфигурациях и API-интерфейсах.
Разъяснивший Python
Иногда нужно создать словарь, который нельзя изменить — например, для констант или конфигурации. Вместо копирования или заморозки вручную, можно использовать MappingProxyType.
Итог:
MappingProxyType создаёт читаемую, но неизменяемую обёртку над словарём — отличный способ защитить данные от случайного изменения, особенно в конфигурациях и API-интерфейсах.
Разъяснивший Python