APScheduler — это инструмент для автоматизации задач в Python. Он позволяет планировать выполнение задач в определённое время или через интервалы.
Можно настроить задачи по расписанию, например, ежедневно или еженедельно. Это удобно для регулярных действий, таких как отправка уведомлений или обновление данных.
Ставится командой ⚙
Документация и примеры кода здесь.
#theory // Just Python
Можно настроить задачи по расписанию, например, ежедневно или еженедельно. Это удобно для регулярных действий, таких как отправка уведомлений или обновление данных.
Ставится командой ⚙
pip install APScheduler
Документация и примеры кода здесь.
#theory // Just Python
The Экономист
Самое время подписаться на @economica, @ruble30 и @trendswhat и нажать «Участвую!» под этим постом, если вы ещё этого не сделали. Результаты уже завтра в 18:00!
Please open Telegram to view this post
VIEW IN TELEGRAM
ReadWriteMemory — это топовая библиотека, позволяющая легко читать/записывать в память любого процесса.
С её помощью можно, например, сделать читы для игры.
А если подрубить такие библиотеки, как imGui, то можно вывести и оверлей чита.
Либо сделать простой трейнер.
Ставится командой
Документация и примеры кода здесь.
#theory // Just Python
С её помощью можно, например, сделать читы для игры.
А если подрубить такие библиотеки, как imGui, то можно вывести и оверлей чита.
Либо сделать простой трейнер.
Ставится командой
pip install ReadWriteMemory
Документация и примеры кода здесь.
#theory // Just Python
cleantext: нормализация и очистка текста
Отличный однострочный код для нормализации и очистки текста — идеально для проектов по обработке естественного языка.
Контент, созданный пользователями в Интернете и в социальных сетях, часто бывает грязным. Предварительно обработайте свои данные с помощью clean-text, чтобы создать нормализованное текстовое представление. Например, преобразуйте этот испорченный ввод:
в этот чистый вывод:
Ссылочка на доку
#theory // Just Python
Отличный однострочный код для нормализации и очистки текста — идеально для проектов по обработке естественного языка.
Контент, созданный пользователями в Интернете и в социальных сетях, часто бывает грязным. Предварительно обработайте свои данные с помощью clean-text, чтобы создать нормализованное текстовое представление. Например, преобразуйте этот испорченный ввод:
A bunch of \\u2018new\\u2019 references, including [Moana](https://en.wikipedia.org/wiki/Moana_%282016_film%29).
»Yóù àré rïght <3!«
в этот чистый вывод:
A bunch of 'new' references, including [moana](<URL>).
"you are right <3!"
Ссылочка на доку
#theory // Just Python
Как оптимизировать память используя генераторы вместо списков
Когда мы работаем с большими наборами данных, важно помнить об эффективном использовании памяти. Одной из полезных фишек Python для оптимизации памяти является использование генераторов вместо списков.
Пример кода
Допустим, у нас есть задача найти квадраты чисел от 1 до 1 000 000. Сначала посмотрим, как это сделать с помощью списка:
Этот код создает список квадратов чисел, что требует значительного объема памяти. Вместо этого можно использовать генератор, который создаст объекты по мере их запроса, не занимая много памяти:
Теперь squares - это генератор, который генерирует квадраты чисел по мере необходимости, занимая минимальное количество памяти.
Почему это полезно
Использование генераторов вместо списков позволяет значительно экономить память, особенно при работе с большими наборами данных. Это делает ваш код более эффективным и позволяет работать с гораздо большими объемами данных без значительных затрат ресурсов.
#theory // Just Python
Когда мы работаем с большими наборами данных, важно помнить об эффективном использовании памяти. Одной из полезных фишек Python для оптимизации памяти является использование генераторов вместо списков.
Пример кода
Допустим, у нас есть задача найти квадраты чисел от 1 до 1 000 000. Сначала посмотрим, как это сделать с помощью списка:
# Плохая практика: использование списка
squares = [x**2 for x in range(1, 1000001)]
Этот код создает список квадратов чисел, что требует значительного объема памяти. Вместо этого можно использовать генератор, который создаст объекты по мере их запроса, не занимая много памяти:
# Лучшая практика: использование генератора
squares = (x**2 for x in range(1, 1000001))
Теперь squares - это генератор, который генерирует квадраты чисел по мере необходимости, занимая минимальное количество памяти.
Почему это полезно
Использование генераторов вместо списков позволяет значительно экономить память, особенно при работе с большими наборами данных. Это делает ваш код более эффективным и позволяет работать с гораздо большими объемами данных без значительных затрат ресурсов.
#theory // Just Python
Модуль dataclasses предназначен для упрощения создания классов данных.
Он предоставляет декоратор и набор инструментов, которые автоматически генерируют основные методы класса, такие как
В примере выше мы используем декоратор @dataclass, чтобы автоматически сгенерировать методы класса Point. Мы определяем поля x, y и z, которые представляют координаты точки. После создания экземпляра класса Point с помощью аргументов конструктора, мы можем напрямую выводить информациюreprтод
Подробнее здесь
#theory // Just Python
Он предоставляет декоратор и набор инструментов, которые автоматически генерируют основные методы класса, такие как
__init__()
, __repr__()
, __eq__()
, и другие. Это упрощает создание классов, которые служат простым хранилищем данных, без необходимости вручную определять все методыВ примере выше мы используем декоратор @dataclass, чтобы автоматически сгенерировать методы класса Point. Мы определяем поля x, y и z, которые представляют координаты точки. После создания экземпляра класса Point с помощью аргументов конструктора, мы можем напрямую выводить информациюreprтод
__repr__()
автоматически сгенерирован. Это делает код более лаконичным и удобным для использования.Подробнее здесь
#theory // Just Python
Создание видео из изображений
В этот раз мы сделаем скрипт для создания видео. Он будет объединять набор изображений в видеоролик, добавлять фоновую музыку, а также позволит настроить скорость смены кадров. В результате получится готовое MP4-видео!
Ссылка на код
#theory // Just Python
В этот раз мы сделаем скрипт для создания видео. Он будет объединять набор изображений в видеоролик, добавлять фоновую музыку, а также позволит настроить скорость смены кадров. В результате получится готовое MP4-видео!
Ссылка на код
#theory // Just Python
Как объединять цепочки условий красиво и читаемо
Иногда логика с множеством if становится громоздкой. В таких случаях удобно использовать словарь как аналог switch-case.
Итог:
Словарь заменяет кучу
#theory // Just Python
Иногда логика с множеством if становится громоздкой. В таких случаях удобно использовать словарь как аналог switch-case.
Итог:
Словарь заменяет кучу
if-elif-else
, делает код чище и облегчает добавление новых случаев. Особенно полезно, когда условия связаны с конкретными значениями (например, кодами, командами или ролями).#theory // Just Python
Как замерить время выполнения кода элегантно
Иногда нужно узнать, сколько времени занял блок кода — для отладки, оптимизации или просто интереса. Вместо громоздких решений можно использовать контекстный менеджер.
Итог:
Контекстный менеджер timeit позволяет быстро замерять производительность без лишнего шума. Особенно полезен при профилировании отдельных участков кода.
#theory // Just Python
Иногда нужно узнать, сколько времени занял блок кода — для отладки, оптимизации или просто интереса. Вместо громоздких решений можно использовать контекстный менеджер.
Итог:
Контекстный менеджер timeit позволяет быстро замерять производительность без лишнего шума. Особенно полезен при профилировании отдельных участков кода.
#theory // Just Python
Как элегантно объединять словари с приоритетом значений
Часто нужно объединить два словаря, где значения из второго имеют приоритет. Это можно сделать просто и читаемо.
Итог:
Синтаксис {dict1, dict2} объединяет словари, давая приоритет второму. Удобен для настройки конфигураций, параметров и всего, что связано с override'ами.
#theory // Just Python
Часто нужно объединить два словаря, где значения из второго имеют приоритет. Это можно сделать просто и читаемо.
Итог:
Синтаксис {dict1, dict2} объединяет словари, давая приоритет второму. Удобен для настройки конфигураций, параметров и всего, что связано с override'ами.
#theory // Just Python
Модуль Faker поможет создавать реалистичные тестовые данные.
Независимо от того, нужны ли вам данные для тестирования, заполнения базы данных или демонстрации функционала, Faker делает процесс генерации данных простым и эффективным.
Faker предоставляет генераторы для различных типов данных, таких как имена, адреса, номера телефонов, электронные почты, даты, текст и многое другое. Это идеальное решение для тех, кто хочет ускорить процесс тестирования.
На примере выше мы написали функцию generate_fake_user, которая использует различные методы Faker, чтобы создать случайные данные для имени, электронной почты, номера телефона и адреса. Затем мы выводим полученные данные о пользователе.
Ставится командой ⚙️
#theory // Just Python
Независимо от того, нужны ли вам данные для тестирования, заполнения базы данных или демонстрации функционала, Faker делает процесс генерации данных простым и эффективным.
Faker предоставляет генераторы для различных типов данных, таких как имена, адреса, номера телефонов, электронные почты, даты, текст и многое другое. Это идеальное решение для тех, кто хочет ускорить процесс тестирования.
На примере выше мы написали функцию generate_fake_user, которая использует различные методы Faker, чтобы создать случайные данные для имени, электронной почты, номера телефона и адреса. Затем мы выводим полученные данные о пользователе.
Ставится командой ⚙️
pip3 install faker
Документация и примеры кода здесь #theory // Just Python
Используйте функцию enumerate для перебора элементов списка и их индексов
enumerate - это встроенная функция, которая принимает список и возвращает объект, который можно использовать в цикле for для перебора элементов списка и их соответствующих индексов.
#theory // Just Python
enumerate - это встроенная функция, которая принимает список и возвращает объект, который можно использовать в цикле for для перебора элементов списка и их соответствующих индексов.
#theory // Just Python
Ограничение времени выполнения кода с signal
Когда нужно завершать долгие операции (например, при парсинге или работе с API), полезно уметь ставить таймаут на блок кода.
Итог:
Модуль signal позволяет элегантно ограничивать время выполнения операций. Особенно полезен при работе с нестабильными внешними источниками или написании защищённых CLI-утилит. Работает только в UNIX-системах.
#theory // Just Python
Когда нужно завершать долгие операции (например, при парсинге или работе с API), полезно уметь ставить таймаут на блок кода.
Итог:
Модуль signal позволяет элегантно ограничивать время выполнения операций. Особенно полезен при работе с нестабильными внешними источниками или написании защищённых CLI-утилит. Работает только в UNIX-системах.
#theory // Just Python
Автоматический резюме-аналитик
Данная программа позволяет загружать .pdf или .docx файл с резюме, извлекает ключевые навыки, опыт, контакты, и формирует краткий отчет. В результате можно разобрать резюме без ручного чтения – отличный инструмент для HR, рекрутеров или разработчиков.
Ссылка на код
#theory // Just Python
Данная программа позволяет загружать .pdf или .docx файл с резюме, извлекает ключевые навыки, опыт, контакты, и формирует краткий отчет. В результате можно разобрать резюме без ручного чтения – отличный инструмент для HR, рекрутеров или разработчиков.
Ссылка на код
#theory // Just Python
Глубокая заморозка объектов с types.MappingProxyType
Иногда нужно создать словарь, который нельзя изменить — например, для констант или конфигурации. Вместо копирования или заморозки вручную, можно использовать MappingProxyType.
Итог:
MappingProxyType создаёт читаемую, но неизменяемую обёртку над словарём — отличный способ защитить данные от случайного изменения, особенно в конфигурациях и API-интерфейсах.
#theory // Just Python
Иногда нужно создать словарь, который нельзя изменить — например, для констант или конфигурации. Вместо копирования или заморозки вручную, можно использовать MappingProxyType.
Итог:
MappingProxyType создаёт читаемую, но неизменяемую обёртку над словарём — отличный способ защитить данные от случайного изменения, особенно в конфигурациях и API-интерфейсах.
#theory // Just Python
PrettyTable – это Python-модуль, который облегчает создание таблиц в коде. На его основе можно легко создавать таблицы из результатов запросов или из любых других данных. Библиотека была разработана Дайвом Льюисом и имеет удобный и понятный синтаксис, который позволяет создавать с помощью пары строк кода красивые таблицы.
PrettyTable позволяет форматировать таблицы, выравнивать данные, добавлять заголовки и многое другое. Это делает эту библиотеку полезным инструментом для анализа, презентации и отображения данных на экране.
PrettyTable позволяет очень просто и быстро настраивать таблицы в Python. Библиотека отлично подходит для работы с большим объемом данных, которые необходимо представить в удобочитаемом формате. Она позволяет легко форматировать таблицы и менять их визуальное отображение.
Ставится командой ⚙️
Документация и примеры кода здесь
#theory // Just Python
PrettyTable позволяет форматировать таблицы, выравнивать данные, добавлять заголовки и многое другое. Это делает эту библиотеку полезным инструментом для анализа, презентации и отображения данных на экране.
PrettyTable позволяет очень просто и быстро настраивать таблицы в Python. Библиотека отлично подходит для работы с большим объемом данных, которые необходимо представить в удобочитаемом формате. Она позволяет легко форматировать таблицы и менять их визуальное отображение.
Ставится командой ⚙️
pip install prettytable
Документация и примеры кода здесь
#theory // Just Python
Замер времени выполнения кода с timeit
Иногда нужно быстро понять, насколько эффективно работает участок кода. Вместо ручного замера времени можно использовать модуль timeit, который делает это корректно и точно.
timeit учитывает накладные расходы, прогрев интерпретатора и выполняет код в изолированной среде, что делает его отличным инструментом для микробенчмарков.
Итог:
timeit — отличный способ сравнивать производительность разных решений и выбирать самое быстрое.
#theory // Just Python
Иногда нужно быстро понять, насколько эффективно работает участок кода. Вместо ручного замера времени можно использовать модуль timeit, который делает это корректно и точно.
timeit учитывает накладные расходы, прогрев интерпретатора и выполняет код в изолированной среде, что делает его отличным инструментом для микробенчмарков.
Итог:
timeit — отличный способ сравнивать производительность разных решений и выбирать самое быстрое.
#theory // Just Python
Тайминг кода без сторонних библиотек
Нужно быстро узнать, сколько времени занимает выполнение участка кода? Воспользуйтесь встроенным модулем time.
Итог:
С помощью
#theory // Just Python
Нужно быстро узнать, сколько времени занимает выполнение участка кода? Воспользуйтесь встроенным модулем time.
time.perf_counter()
предоставляет наиболее точные замеры времени исполнения — идеально для бенчмаркинга.Итог:
С помощью
time.perf_counter()
можно легко измерять производительность кода без внешних зависимостей.#theory // Just Python
Словарь с "молчаливыми" значениями — defaultdict
Когда работаешь со словарём, часто нужно сначала проверять, есть ли ключ. С defaultdict от collections это делается автоматически.
Итог:
defaultdict избавляет от лишних проверок и упрощает код, особенно когда нужно агрегировать или группировать данные.
#theory // Just Python
Когда работаешь со словарём, часто нужно сначала проверять, есть ли ключ. С defaultdict от collections это делается автоматически.
Итог:
defaultdict избавляет от лишних проверок и упрощает код, особенно когда нужно агрегировать или группировать данные.
#theory // Just Python
Как красиво подставлять переменные в строку?
Новички часто используют конкатенацию (+) или .format() для создания строк с переменными, но это может быть громоздко и неудобно. Python предлагает современный и удобный способ — f-строки (форматированные строки), которые позволяют подставлять значения прямо внутрь строки с минимальным синтаксисом.
Для этого перед строкой нужно поставить f, а переменные — обернуть в фигурные скобки {}.
Итог:
f-строки — простой и читаемый способ форматирования.
Позволяют вставлять выражения прямо в строку.
Быстрее и удобнее, чем .format() или +.
#theory // Just Python
Новички часто используют конкатенацию (+) или .format() для создания строк с переменными, но это может быть громоздко и неудобно. Python предлагает современный и удобный способ — f-строки (форматированные строки), которые позволяют подставлять значения прямо внутрь строки с минимальным синтаксисом.
Для этого перед строкой нужно поставить f, а переменные — обернуть в фигурные скобки {}.
Итог:
f-строки — простой и читаемый способ форматирования.
Позволяют вставлять выражения прямо в строку.
Быстрее и удобнее, чем .format() или +.
#theory // Just Python