Python tricks | Хитрости Питона
5.83K subscribers
2.21K photos
26 videos
1 file
2.52K links
Здесь вы найдете лучшие практики и приёмы, которые используют опытные программисты.

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

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

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
Kivy

Kivy — это библиотека с открытым исходным кодом для быстрой разработки межплатформенных пользовательских интерфейсов. Она позволяет создавать кроссплатформенные приложения без каких-либо трудностей.

Kivy написан на Python и Cython, основан на OpenGL ES 2, поддерживает различные устройства ввода и имеет обширную библиотеку виджетов. С одним и тем же кодом вы можете нацелиться на Windows, macOS, Linux, Android и iOS.

В этом коде мы добавили обработчик событий on_button_press для кнопок калькулятора. Этот обработчик обновляет текст в поле ввода в зависимости от нажатой кнопки. Мы также добавили функцию evaluate, которая вычисляет результат выражения в поле ввода и обновляет его текст.

Результат работы этого кода - это окно с калькулятором, содержащим поле ввода и кнопки для ввода чисел и выполнения математических операций.

🔗 Python tricks
PyCaret

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

В этом примере мы загружаем набор данных juice и используем его для решения задачи классификации. Мы инициализируем настройки с помощью функции setup, затем сравниваем различные модели с помощью функции compare_models и выбираем наилучшую.

Далее мы создаем модель решающего дерева с помощью функции create_model и настраиваем ее с помощью функции tune_model. Мы также можем оценить модель с помощью функции evaluate_model и использовать ее для прогнозирования на новых данных с помощью функции predict_model.

🔗 Python tricks
Изменяем цвет текста в терминале

Colorama — это библиотека для языка программирования Python, которая позволяет использовать ANSI-последовательности для вывода цветного текста в терминале на разных платформах.

Кроме того, можно использовать константы из модуля Style для установки стиля текста (например, жирный или подчеркнутый) и константы из модуля Back для установки цвета фона.

Например, чтобы вывести зеленый текст с помощью Colorama, можно использовать код, приведенный выше.
В этом примере init используется для инициализации библиотеки и обеспечения работы ANSI-последовательностей на Windows, а константа Fore для установки цвета текста.

🔗 Python tricks
Simplejson

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
Как проверить, что один кортеж содержит все элементы другого кортежа

Для проверки того, содержит ли один кортеж все элементы другого кортежа в Python, можно воспользоваться встроенной функцией all(), передав ей выражение генератора списков, которое проверяет наличие каждого элемента из второго кортежа в первом кортеже.

🔗 Python tricks
Falcon

Falcon — это быстрый и минималистичный веб-фреймворк, предназначенный для создания надежных бэкэнд приложений и микросервисов. Он отлично работает как с asyncio (ASGI), так и с gevent/meinheld (WSGI).

Falcon используется такими компаниями, как LinkedIn, PayPal, Wargaming и другими, чтобы обеспечить работу критически важных сервисов.

В этом примере создается QuoteResource, который обрабатывает GET-запросы. При получении GET-запроса на маршрут /quote возвращается словарь с информацией об авторе и цитате. Затем этот ресурс добавляется в приложение Falcon с помощью метода add_route.

🔗 Python tricks
CherryPy

CherryPy — это минималистический веб-фреймворк, который предоставляет удобный интерфейс к протоколу HTTP для разработчиков Python и позволяет создавать веб-приложения так же, как в традиционных объектно-ориентированных программах на Python.

В этом примере создается класс HelloWorld с методом index. Этот метод декорирован с помощью cherrypy.expose, что означает, что он будет доступен как обработчик HTTP-запросов. Затем запускается веб-сервер CherryPy с помощью метода cherrypy.quickstart и передачи ему экземпляра класса HelloWorld.

Результатом работы этого кода будет то, что при отправке GET-запроса на корневой маршрут (/) сервер вернет строку
“Hello World!”.

🔗 Python tricks
wxPython

wxPython — это кроссплатформенная обертка библиотек графического интерфейса пользователя, основанная на wxWidgets и написанная на языке программирования C++. Она является одной из альтернатив Tkinter, которая поставляется вместе с Python.

В этом примере мы создаем два основных объекта в wxPython: основной объект окна и объект приложения. Затем управление передается обработчику событий (вызовом функции MainLoop()), который отвечает за интерактивную часть программы.

🔗 Python tricks
Расскажите, что такое асинхронный код

Асинхронный код — это подход к написанию кода, который позволяет выполнять несколько задач одновременно в рамках одного процесса. Это достигается за счет использования асинхронных функций и корутин. В отличие от синхронного кода, который выполняет каждую задачу последовательно, асинхронный код может запустить несколько задач «параллельно» и организовать их выполнение с помощью итераций и вызовов коллбеков.

🔗 Python tricks
Создаем графики в терминале

Bashplotlib — это библиотека Python и инструмент командной строки для создания базовых графиков в терминале. Это быстрый способ визуализации данных, когда у вас нет GUI. Она написана на чистом Python и может быть быстро установлена в любом месте с помощью pip.

Например, вы можете использовать Bashplotlib для создания гистограммы из массива данных. В этом примере функция plot_hist используется для отображения данных на одномерной гистограмме.

🔗 Python tricks
__missing__

Метод __missing__ определяет поведение подкласса словаря при доступе к несуществующему ключу. Более конкретно, внутренний метод словаря __getitem__ вызывает метод __missing__, если ключ не существует.

Этот метод может быть полезен при решении различных задач, например, при подсчете элементов или при работе со словарями, где отсутствующие ключи должны иметь определенное значение по умолчанию.

В этом примере мы создаем экземпляр класса DefaultDict с значением по умолчанию 'default'. Когда мы пытаемся получить доступ к несуществующему ключу 'key', вызывается метод __missing__, который возвращает значение по умолчанию.

🔗 Python tricks
doctest

Модуль doctest позволяет проверять интерактивные примеры кода Python, встроенные в документацию. Этот модуль ищет фрагменты текста, которые выглядят как интерактивные сеансы Python, и затем выполняет эти сеансы, чтобы убедиться, что они работают точно так же, как показано.

Модуль doctest может быть полезен при написании документации для пакета или модуля, а также при написании тестов для проверки корректности работы кода.

В этом примере мы определяем функцию square, которая возвращает квадрат числа x. В докстринге функции мы включаем несколько интерактивных примеров использования функции. Затем мы импортируем модуль doctest и вызываем метод testmod, который автоматически находит и проверяет все doctest’ы в текущем модуле.

При запуске кода вы увидите подробный вывод о том, какие doctest’ы были выполнены и какие результаты они вернули.

🔗 Python tricks
Что такое синхронный код

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

🔗 Python tricks
Почему иногда Python так долго запускается в Windows

Запуск Python может занимать длительное время на компьютерах с операционной системой Windows по нескольким причинам. Вот некоторые из них:

Перезагрузка компьютера может занять длительное время и затормозить работу Python;

Некоторые антивирусные программы и брандмауэры могут занимать ресурсы и замедлять выполнение команд в Python;

Операционная система Windows может использовать много ресурсов, когда запускаются приложения, и это может сказаться на производительности Python;

Зависимости и модули Python, которые используются в приложении, могут занимать много времени на импорт и загрузку;

Неэффективный код Python может приводить к значительным задержкам и замедлениям;

Другие приложения, работающие на компьютере, могут занимать много времени на выполнение задач и затруднять работу Python;

🔗 Python tricks
Twisted

Twisted — это асинхронный фреймворк, написанный на Python. Это мощное средство для быстрой разработки сетевых (и не только) сервисов. Он разработан с использованием паттерна проектирования Reactor.

Фреймворк включает в себя следующие модули: twisted.web; twisted.conch; twisted.words; twisted.mail; twisted.positioning; twisted.names; twisted.trial.

В этом примере мы создаем класс Echo, который переопределяет метод dataReceived. Этот метод вызывается каждый раз, когда сервер получает данные от клиента.
Затем мы создаем класс EchoFactory, который переопределяет метод buildProtocol. Этот метод вызывается каждый раз, когда сервер принимает новое соединение.
Наконец, мы используем реактор Twisted для прослушивания входящих соединений на порту 1234 и запускаем реактор. Когда клиент подключается к серверу и отправляет данные, сервер отправляет эти данные обратно клиенту.

🔗 Python tricks
Pyro4

Это библиотека, которая позволяет вам создавать приложения, в которых объекты могут общаться друг с другом через сеть с минимальными усилиями по программированию.
Он разработан таким образом, чтобы быть очень простым в использовании и, как правило, не мешать вам. Но он также предоставляет набор мощных функций, которые позволяют вам быстро и без усилий создавать распределенные приложения.

В этом примере мы используем Pyro4 для создания распределенного приложения, в котором объекты могут общаться друг с другом через сеть. Мы создаем удаленный объект GreetingMaker, который имеет метод get_fortune, который возвращает случайное приветствие. Затем запускаем сервер Pyro4, который предоставляет доступ к этому объекту через сеть.

🔗 Python tricks
Prophet

Prophet — это библиотека прогнозирования временных рядов с открытым исходным кодом, разработанная командой Facebook. Она доступна как для Python, так и для R.

Prophet предназначен для создания высококачественных прогнозов для принятия решений, не требуя от пользователя экспертных знаний по прогнозированию временных рядов.

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

Результат работы этого кода — график с прогнозом количества пассажиров авиакомпании на будущий период. Визуализация также показывает компоненты прогноза: тренд, сезонность и праздники.

🔗 Python tricks
Eve

Eve — это фреймворк для создания REST API на языке Python с открытым исходным кодом. Он позволяет легко создавать и развертывать высоко настраиваемые, полнофункциональные RESTful веб-сервисы. Eve предлагает встроенную поддержку для MongoDB и SQL-бэкендов через расширения сообщества.

В этом примере мы импортируем класс Eve из модуля eve, создаем экземпляр приложения Eve и запускаем его. Теперь API активен и готов к использованию.
В результате — запущенный веб-сервер с RESTful API, который можно использовать для обмена данными между клиентом и сервером.

*REST API — это API, построенный с учетом ограничений REST. Это означает, что REST API использует HTTP-методы (GET, POST, PUT, DELETE и т. д.) для выполнения операций над ресурсами (данными), представленными в виде URI (Uniform Resource Identifier).

🔗 Python tricks