TGViewer
Channel Public Channel
Python tricks | Хитрости Питона

Python tricks | Хитрости Питона

@python_tricks

Здесь вы найдете лучшие практики и приёмы, которые используют опытные программисты.

Сотрудничество: @SIeep_Token

Мы на платформе: https://telegram.me/python_tricks

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Subscribers
5.09K
Photos
2.2K
Videos
26
Links
2.5K

Showing posts older than #2226 · Back to latest

Older Posts 20 shown
Post #2225 750
next

Функция next() возвращает следующий элемент итератора. Если итератор исчерпан, он возвращает значение по умолчанию, переданное в качестве аргумента. Если параметр по умолчанию не указан и итератор исчерпан, возникает исключение StopIteration.

🔗 Python tricks
Post #2224 780
Duck typing (утиная типизация)

Duck typing
— это концепция, позволяющая использовать объекты независимо от их типа, базируясь на их свойствах и методах.

Основная идея — не проверять тип объекта напрямую, а пытаться использовать его так, как нам нужно.

Преимущества:

— Нет необходимости привязываться к конкретным классам и типам.

— Код становится более гибким и менее связанным.

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

— Упрощает полиморфизм.

🔗 Python tricks
Post #2223 694
Атрибуты объектов

Атрибуты — это переменные, связанные с объектом класса и хранящие его данные.
Они объявляются внутри класса, а доступ к атрибутам происходит через точку после объекта (object.attr). Бывают public, приватными (__attr) и защищенными (_attr). Публичные атрибуты доступны везде, приватные только в классе, защищенные в классе и дочерних.

Значение по умолчанию None, если не задано другое.

Атрибуты можно создать в конструкторе init() и изменить в методах класса, а новые атрибуты к объектам можно добавлять в рантайме.

🔗 Python tricks
Post #2222 716
Композиция (ассоциация) классов

Композиция (ассоциация) классов — это способ связи объектов разных классов. Позволяет создавать сложные объекты из более простых.
Один класс содержит объект другого класса как атрибут, при этом внутренний объект является частью внешнего.

Внешний класс не наследует функционал внутреннего, в отличие от наследования, просто использует его.

Композиция классов позволяет создавать сложные объекты из простых классов и подходит для моделирования реальных взаимосвязей.

🔗 Python tricks
Post #2221 695
LineaPy

LineaPy
— это библиотека для работы с временными рядами и анализа временных данных.

Эта библиотека позволяет быстро решать типовые задачи анализа временных рядов без необходимости "изобретать велосипед".
Она удобна для анализа временных данных в задачах прогнозирования, мониторинга, выявления сезонности, трендов и аномалий. Имеет интуитивный API и хорошую документацию.

В этом примере мы получили прогнозные значения временного ряда на 5 периодов вперед с помощью модели ARIMA из LineaPy за считанные строки кода.

🔗 Python tricks
Post #2220 672
Завершение программы

sys.exit()
— это функция, которая позволяет завершить выполнение программы и возвратить код возврата операционной системе.
Принимает один необязательный числовой аргумент — код возврата программы. По умолчанию это 0, что означает успешное завершение, а код возврата отличный от нуля сигнализирует об ошибке или нештатной ситуации.

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

🔗 Python tricks
Post #2219 746
Fugue

Fugue — это библиотека, которая используется для создания и оркестровки workflow машинного обучения.
Она позволяет быстро создавать, тестировать и масштабировать ML приложения, автоматизируя рутинные этапы.

Основные возможности:
— Описание этапов workflow как отдельных функций.
— Автоматическое определение зависимостей между функциями.
— Планирование выполнения функций с учетом зависимостей.
— Кэширование промежуточных результатов для оптимизации.
— Распределенное выполнение на разных ядрах или машинах.

В этом примере с помощью декоратора @FugueWorkflow() отмечены функции, которые будут этапами workflow.
Fugue автоматически определит, что fit_model зависит от preprocess, а predict - от fit_model.

При вызове функций Fugue учтёт эти зависимости и выполнит их в правильном порядке, кэшируя промежуточные результаты.

🔗 Python tricks
Post #2218 752
LangChain

LangChain
— это библиотека, которая позволяет создавать цепочки обработки естественного языка (NLP).

Основные возможности:
— Создание конвейеров обработки текста.
— Подключение различных модулей NLP (токенизация, лемматизация и т. д.).
— Объединение моделей в единую цепочку.
— Удобная настройка и отладка.

Используется для:
— Построения приложений для анализа текста на Python.
— Быстрого прототипирования решений для обработки естественного языка.
— Объединения разных библиотек NLP в одном workflow.
— Упрощения процесса экспериментов с моделями обработки текста.

В этом примере создается цепочка из двух моделей OpenAI — Curie и Babbage, а текст передается поочередно в каждую модель.

🔗 Python tricks
Post #2217 703
Query JSON

JMESpath – это язык запросов для JSON, который позволяет получать необходимые данные из документа или словаря JSON. Библиотека доступна как для Python, так и для других ЯП, что расширяет ее возможности.

🔗 Python tricks
Post #2216 679
Реверс строк и списков

Вы можете использовать slice-нотацию, чтобы перевернуть строку или список. При отрицательном значении шага, элементы меняются местами.
🔗 Python tricks
Post #2215 710
Создание строки из списка строк

Все сводится к тому, что функция String.join() может присоединять не только списки, но и любой iterable. Помещение его внутрь строки предотвращает реализацию одной и той же функциональности в нескольких местах.

🔗 Python tricks
Post #2214 730
Синтаксис

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

🔗 Python tricks
Post #2213 740
Работа с датами

Модуль Python-dateutil предоставляет мощное расширение для стандартного datetime. Устанавливается он следующим образом.

🔗 Python tricks
Post #2212 737
Словарь и set comprehensions

Словарю нужны ключ и значение.

Определяем ключ и значение в expression.

Синтаксис set comprehension не сильно отличается от list comprehension. Мы просто используем фигурные скобки вместо квадратных.

🔗 Python tricks
Post #2211 735
Использование * и ** для распаковки аргументов функций

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

🔗 Python tricks
Post #2210 696
len

Функция len() возвращает количество элементов (длину) в объекте. Если невозможно передать аргумент, либо передается недопустимый аргумент, вызывается исключение TypeError.

🔗 Python tricks
Post #2209 699
manim

Manim
— это библиотека, которая используется для создания анимированных визуализаций и математических демонстраций.

Manim позволяет программистам и математикам создавать наглядные анимации для визуализации различных процессов, объяснения алгоритмов, демонстрации физических явлений и других задач.

Результат выполнения кода из примера — видеофайл с анимацией данных преобразований.

🔗 Python tricks
Post #2208 739
EEL

EEL (Easy Electron)
— это библиотека, которая упрощает создание desktop-приложений с использованием технологий веб-разработки (HTML, CSS и Javascript).

Основные возможности EEL:

— Позволяет создавать графический интерфейс приложения при помощи веб-технологий.
— Обеспечивает взаимодействие между Python кодом и Javascript кодом. Python может вызывать JS функции, а JS может вызывать Python.
— Автоматически обрабатывает асинхронные вызовы между JS и Python.
— Встроенный локальный веб-сервер для отображения HTML/JS интерфейса.

В этом примере импортируется модуль eel и инициализируется папка с HTML и JS файлами — 'web'.
Декоратор @eel.expose делает функцию say_hello() доступной для вызова из Javascript.
Вызов eel.say_hello() вызывает эту функцию из Python кода.

🔗 Python tricks
Post #2207 695
Строка – заголовок

Если хотите быстро получить красивый заголовок, сделайте так.

🔗 Python tricks
Post #2206 755
Разбиение строки в список

Вы можете разбить строку на список строк. В этом случае разбиение происходит по символу пробела.

Чтобы разделить по пустому месту, не нужно передавать в split никаких аргументов – используйте mystring.split().

🔗 Python tricks
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →