Библиотека Manim
Библиотека Manim (Mathematical Animation Engine) предоставляет инструменты для создания анимаций математических концепций с использованием Python. Эта библиотека широко используется в образовательных целях и в сообществе, занимающемся созданием математических контентов. Manim была изначально разработана Grant'ом Sanderson'ом, создателем 3Blue1Brown, для создания анимаций для его образовательных видеороликов.
Помимо этого, существует две версии Manim: Manim Community Edition (ManimCE) и Manim GL. ManimCE является развитием и поддерживается сообществом. Manim GL, с другой стороны, предоставляет улучшенные возможности OpenGL для более высокого качества анимаций.
После установки вы можете использовать команды вроде
🔗 Python tricks
Библиотека Manim (Mathematical Animation Engine) предоставляет инструменты для создания анимаций математических концепций с использованием Python. Эта библиотека широко используется в образовательных целях и в сообществе, занимающемся созданием математических контентов. Manim была изначально разработана Grant'ом Sanderson'ом, создателем 3Blue1Brown, для создания анимаций для его образовательных видеороликов.
Помимо этого, существует две версии Manim: Manim Community Edition (ManimCE) и Manim GL. ManimCE является развитием и поддерживается сообществом. Manim GL, с другой стороны, предоставляет улучшенные возможности OpenGL для более высокого качества анимаций.
После установки вы можете использовать команды вроде
manim your_script.py YourSceneName -p -ql
, чтобы создать видео на основе вашего скрипта.🔗 Python tricks
Композиция классов
Композиция классов — это концепция, при которой один класс включает в себя объект(ы) другого класса в качестве атрибута. Это отличается от наследования, где класс наследует атрибуты и методы другого класса. Композиция обычно предпочтительна в сравнении с наследованием, так как она обеспечивает более гибкую структуру.
Композиция обычно предпочтительна, когда отношение между двумя классами является «имеет» или «включает», а не «является». Она делает код более гибким, позволяя изменять поведение объекта, не изменяя его класс напрямую.
Важно отметить, что композиция и наследование могут использоваться вместе в зависимости от конкретных требований вашей программы.
🔗 Python tricks
Композиция классов — это концепция, при которой один класс включает в себя объект(ы) другого класса в качестве атрибута. Это отличается от наследования, где класс наследует атрибуты и методы другого класса. Композиция обычно предпочтительна в сравнении с наследованием, так как она обеспечивает более гибкую структуру.
Композиция обычно предпочтительна, когда отношение между двумя классами является «имеет» или «включает», а не «является». Она делает код более гибким, позволяя изменять поведение объекта, не изменяя его класс напрямую.
Важно отметить, что композиция и наследование могут использоваться вместе в зависимости от конкретных требований вашей программы.
🔗 Python tricks
Six
Библиотека
В этом примере функция
🔗 Python tricks
Библиотека
Six
— это мощная библиотека, которая предназначена для сглаживания различий между двумя версиями Python: 2 и 3. Она предоставляет утилиты для обеспечения совместимости кода, который работает на обеих версиях Python без изменений. Six
состоит всего из одного файла Python, поэтому его легко скопировать в проект.В этом примере функция
dispatch_types
использует константы типов из библиотеки Six
для проверки типа переданного значения и вызова соответствующей функции обработки.🔗 Python tricks
Поверхностное копирование
Копирование объектов может быть выполнено как «поверхностное» (shallow) копирование или «глубокое» (deep) копирование. Различия между ними заключаются в том, как обрабатываются вложенные объекты.
При поверхностном копировании создается новый объект, но его внутренние элементы (если они тоже являются объектами) остаются ссылками на те же объекты, что и в оригинале. Другими словами, копируются только ссылки на объекты, но не сами объекты.
Заметьте, что изменения во вложенных объектах будут видны как в оригинале, так и в его поверхностной копии.
🔗 Python tricks
Копирование объектов может быть выполнено как «поверхностное» (shallow) копирование или «глубокое» (deep) копирование. Различия между ними заключаются в том, как обрабатываются вложенные объекты.
При поверхностном копировании создается новый объект, но его внутренние элементы (если они тоже являются объектами) остаются ссылками на те же объекты, что и в оригинале. Другими словами, копируются только ссылки на объекты, но не сами объекты.
Заметьте, что изменения во вложенных объектах будут видны как в оригинале, так и в его поверхностной копии.
🔗 Python tricks
aiohttp
Библиотека
В этом примере создается веб-приложение с помощью
🔗 Python tricks
Библиотека
aiohttp
— это асинхронный HTTP-клиент/сервер для asyncio
и Python. Она поддерживает как клиентские, так и серверные веб-сокеты “из коробки” без коллбэков. Веб-сервер имеет промежуточное ПО (middlewares), сигналы и подключаемую маршрутизацию.В этом примере создается веб-приложение с помощью
aiohttp.web.Application
, добавляются маршруты для обработки запросов к корневому URL-адресу (/
) и URL-адресу с именем (/{name}
). Функция handle
обрабатывает запросы, извлекает имя из параметров запроса (или использует значение по умолчанию “Anonymous”) и возвращает ответ с текстом приветствия.🔗 Python tricks
Что такое слайс(slice)
Слайс (slice) — это способ извлечения определенной части последовательности (например, строки, списка, кортежа) с использованием индексации.
🔗 Python tricks
Слайс (slice) — это способ извлечения определенной части последовательности (например, строки, списка, кортежа) с использованием индексации.
🔗 Python tricks
Kivy
В этом коде мы добавили обработчик событий
Результат работы этого кода - это окно с калькулятором, содержащим поле ввода и кнопки для ввода чисел и выполнения математических операций.
🔗 Python tricks
Kivy
— это библиотека с открытым исходным кодом для быстрой разработки межплатформенных пользовательских интерфейсов. Она позволяет создавать кроссплатформенные приложения без каких-либо трудностей. Kivy
написан на Python и Cython, основан на OpenGL ES 2, поддерживает различные устройства ввода и имеет обширную библиотеку виджетов. С одним и тем же кодом вы можете нацелиться на Windows, macOS, Linux, Android и iOS.В этом коде мы добавили обработчик событий
on_button_press
для кнопок калькулятора. Этот обработчик обновляет текст в поле ввода в зависимости от нажатой кнопки. Мы также добавили функцию evaluate
, которая вычисляет результат выражения в поле ввода и обновляет его текст.Результат работы этого кода - это окно с калькулятором, содержащим поле ввода и кнопки для ввода чисел и выполнения математических операций.
🔗 Python tricks
PyCaret
В этом примере мы загружаем набор данных juice и используем его для решения задачи классификации. Мы инициализируем настройки с помощью функции
Далее мы создаем модель решающего дерева с помощью функции
🔗 Python tricks
PyCaret
— это библиотека машинного обучения с открытым исходным кодом и низким уровнем кода для Python, которая автоматизирует рабочие процессы машинного обучения. Она является инструментом для машинного обучения и управления моделями от начала до конца, который ускоряет цикл экспериментов в экспоненциальной степени.В этом примере мы загружаем набор данных juice и используем его для решения задачи классификации. Мы инициализируем настройки с помощью функции
setup
, затем сравниваем различные модели с помощью функции compare_models
и выбираем наилучшую.Далее мы создаем модель решающего дерева с помощью функции
create_model
и настраиваем ее с помощью функции tune_model
. Мы также можем оценить модель с помощью функции evaluate_model
и использовать ее для прогнозирования на новых данных с помощью функции predict_model
.🔗 Python tricks
Изменяем цвет текста в терминале
Кроме того, можно использовать константы из модуля
Например, чтобы вывести зеленый текст с помощью
В этом примере
🔗 Python tricks
Colorama
— это библиотека для языка программирования Python, которая позволяет использовать ANSI-последовательности для вывода цветного текста в терминале на разных платформах. Кроме того, можно использовать константы из модуля
Style
для установки стиля текста (например, жирный или подчеркнутый) и константы из модуля Back
для установки цвета фона.Например, чтобы вывести зеленый текст с помощью
Colorama
, можно использовать код, приведенный выше. В этом примере
init
используется для инициализации библиотеки и обеспечения работы ANSI-последовательностей на Windows, а константа Fore
для установки цвета текста.🔗 Python tricks
Simplejson
Кодировщик может быть специализирован для обеспечения сериализации в любой ситуации, без какой-либо специальной поддержки сериализуемых объектов (наподобие
В этом примере мы импортируем модуль
🔗 Python tricks
Simplejson
является внешне поддерживаемой версией библиотеки json
, включенной в Python (начиная с версии 2.6). Эта версия протестирована с последней версией Python 3.8 и поддерживает обратную совместимость с Python 3.3+ и устаревшими версиями Python 2.5 - Python 2.72.Кодировщик может быть специализирован для обеспечения сериализации в любой ситуации, без какой-либо специальной поддержки сериализуемых объектов (наподобие
pickle
). Это лучше всего делать с помощью аргумента default
функции dumps
. Декодер может обрабатывать входящие строки JSON любой указанной кодировки (по умолчанию UTF-8). Он также может быть специализирован для постобработки объектов JSON с помощью аргументов object_hook
или object_pairs_hook
.В этом примере мы импортируем модуль
simplejson
под именем json
, создаем словарь data
с данными о пользователе. Затем используем функцию dump
, чтобы сериализовать словарь data
в строку JSON, сохраняем результат в переменной json_string
и выводим ее в консоль.🔗 Python tricks
set.symmetric_difference
Метод symmetric difference() используется для возврата нового множества, которое содержит элементы, присутствующие в одном из двух множеств, но не в обоих. Другими словами, это операция поиска различий между двумя множествами.
🔗 Python tricks
Метод symmetric difference() используется для возврата нового множества, которое содержит элементы, присутствующие в одном из двух множеств, но не в обоих. Другими словами, это операция поиска различий между двумя множествами.
🔗 Python tricks
Как проверить, что один кортеж содержит все элементы другого кортежа
Для проверки того, содержит ли один кортеж все элементы другого кортежа в Python, можно воспользоваться встроенной функцией all(), передав ей выражение генератора списков, которое проверяет наличие каждого элемента из второго кортежа в первом кортеже.
🔗 Python tricks
Для проверки того, содержит ли один кортеж все элементы другого кортежа в Python, можно воспользоваться встроенной функцией all(), передав ей выражение генератора списков, которое проверяет наличие каждого элемента из второго кортежа в первом кортеже.
🔗 Python tricks
Falcon
В этом примере создается
🔗 Python tricks
Falcon
— это быстрый и минималистичный веб-фреймворк, предназначенный для создания надежных бэкэнд приложений и микросервисов. Он отлично работает как с asyncio (ASGI), так и с gevent/meinheld (WSGI). Falcon
используется такими компаниями, как LinkedIn, PayPal, Wargaming и другими, чтобы обеспечить работу критически важных сервисов.В этом примере создается
QuoteResource
, который обрабатывает GET-запросы. При получении GET-запроса на маршрут /quote
возвращается словарь с информацией об авторе и цитате. Затем этот ресурс добавляется в приложение Falcon
с помощью метода add_route
.🔗 Python tricks
CherryPy
В этом примере создается класс
Результатом работы этого кода будет то, что при отправке GET-запроса на корневой маршрут (/) сервер вернет строку
“Hello World!”.
🔗 Python tricks
CherryPy
— это минималистический веб-фреймворк, который предоставляет удобный интерфейс к протоколу HTTP для разработчиков Python и позволяет создавать веб-приложения так же, как в традиционных объектно-ориентированных программах на Python.В этом примере создается класс
HelloWorld
с методом index
. Этот метод декорирован с помощью cherrypy.expose
, что означает, что он будет доступен как обработчик HTTP-запросов. Затем запускается веб-сервер CherryPy
с помощью метода cherrypy.quickstart
и передачи ему экземпляра класса HelloWorld
.Результатом работы этого кода будет то, что при отправке GET-запроса на корневой маршрут (/) сервер вернет строку
“Hello World!”.
🔗 Python tricks
wxPython
В этом примере мы создаем два основных объекта в
🔗 Python tricks
wxPython
— это кроссплатформенная обертка библиотек графического интерфейса пользователя, основанная на wxWidgets
и написанная на языке программирования C++. Она является одной из альтернатив Tkinter
, которая поставляется вместе с Python.В этом примере мы создаем два основных объекта в
wxPython
: основной объект окна и объект приложения. Затем управление передается обработчику событий (вызовом функции MainLoop()
), который отвечает за интерактивную часть программы.🔗 Python tricks
Расскажите, что такое асинхронный код
Асинхронный код — это подход к написанию кода, который позволяет выполнять несколько задач одновременно в рамках одного процесса. Это достигается за счет использования асинхронных функций и корутин. В отличие от синхронного кода, который выполняет каждую задачу последовательно, асинхронный код может запустить несколько задач «параллельно» и организовать их выполнение с помощью итераций и вызовов коллбеков.
🔗 Python tricks
Асинхронный код — это подход к написанию кода, который позволяет выполнять несколько задач одновременно в рамках одного процесса. Это достигается за счет использования асинхронных функций и корутин. В отличие от синхронного кода, который выполняет каждую задачу последовательно, асинхронный код может запустить несколько задач «параллельно» и организовать их выполнение с помощью итераций и вызовов коллбеков.
🔗 Python tricks
Создаем графики в терминале
Например, вы можете использовать
🔗 Python tricks
Bashplotlib
— это библиотека Python и инструмент командной строки для создания базовых графиков в терминале. Это быстрый способ визуализации данных, когда у вас нет GUI. Она написана на чистом Python и может быть быстро установлена в любом месте с помощью pip.Например, вы можете использовать
Bashplotlib
для создания гистограммы из массива данных. В этом примере функция plot_hist
используется для отображения данных на одномерной гистограмме.🔗 Python tricks
__missing__
Метод
Этот метод может быть полезен при решении различных задач, например, при подсчете элементов или при работе со словарями, где отсутствующие ключи должны иметь определенное значение по умолчанию.
В этом примере мы создаем экземпляр класса
🔗 Python tricks
Метод
__missing__
определяет поведение подкласса словаря при доступе к несуществующему ключу. Более конкретно, внутренний метод словаря __getitem__
вызывает метод __missing__
, если ключ не существует.Этот метод может быть полезен при решении различных задач, например, при подсчете элементов или при работе со словарями, где отсутствующие ключи должны иметь определенное значение по умолчанию.
В этом примере мы создаем экземпляр класса
DefaultDict
с значением по умолчанию 'default
'. Когда мы пытаемся получить доступ к несуществующему ключу 'key
', вызывается метод __missing__
, который возвращает значение по умолчанию.🔗 Python tricks
doctest
Модуль
Модуль
В этом примере мы определяем функцию
При запуске кода вы увидите подробный вывод о том, какие doctest’ы были выполнены и какие результаты они вернули.
🔗 Python tricks
Модуль
doctest
позволяет проверять интерактивные примеры кода Python, встроенные в документацию. Этот модуль ищет фрагменты текста, которые выглядят как интерактивные сеансы Python, и затем выполняет эти сеансы, чтобы убедиться, что они работают точно так же, как показано.Модуль
doctest
может быть полезен при написании документации для пакета или модуля, а также при написании тестов для проверки корректности работы кода.В этом примере мы определяем функцию
square
, которая возвращает квадрат числа x
. В докстринге функции мы включаем несколько интерактивных примеров использования функции. Затем мы импортируем модуль doctest
и вызываем метод testmod
, который автоматически находит и проверяет все doctest’ы в текущем модуле.При запуске кода вы увидите подробный вывод о том, какие doctest’ы были выполнены и какие результаты они вернули.
🔗 Python tricks
Что такое синхронный код
Синхронный код — это код, который выполняется последовательно, один за другим, и блокирует выполнение других задач до его завершения. Это означает, что если у вас есть функция, которая занимает много времени на выполнение, и вы вызываете ее в основной программе, то выполнение программы заблокируется до завершения этой функции.
🔗 Python tricks
Синхронный код — это код, который выполняется последовательно, один за другим, и блокирует выполнение других задач до его завершения. Это означает, что если у вас есть функция, которая занимает много времени на выполнение, и вы вызываете ее в основной программе, то выполнение программы заблокируется до завершения этой функции.
🔗 Python tricks
Почему иногда Python так долго запускается в Windows
Запуск Python может занимать длительное время на компьютерах с операционной системой Windows по нескольким причинам. Вот некоторые из них:
Перезагрузка компьютера может занять длительное время и затормозить работу Python;
Некоторые антивирусные программы и брандмауэры могут занимать ресурсы и замедлять выполнение команд в Python;
Операционная система Windows может использовать много ресурсов, когда запускаются приложения, и это может сказаться на производительности Python;
Зависимости и модули Python, которые используются в приложении, могут занимать много времени на импорт и загрузку;
Неэффективный код Python может приводить к значительным задержкам и замедлениям;
Другие приложения, работающие на компьютере, могут занимать много времени на выполнение задач и затруднять работу Python;
🔗 Python tricks
Запуск Python может занимать длительное время на компьютерах с операционной системой Windows по нескольким причинам. Вот некоторые из них:
Перезагрузка компьютера может занять длительное время и затормозить работу Python;
Некоторые антивирусные программы и брандмауэры могут занимать ресурсы и замедлять выполнение команд в Python;
Операционная система Windows может использовать много ресурсов, когда запускаются приложения, и это может сказаться на производительности Python;
Зависимости и модули Python, которые используются в приложении, могут занимать много времени на импорт и загрузку;
Неэффективный код Python может приводить к значительным задержкам и замедлениям;
Другие приложения, работающие на компьютере, могут занимать много времени на выполнение задач и затруднять работу Python;
🔗 Python tricks