Python Community
13.1K subscribers
1.24K photos
26 videos
15 files
711 links
Python Community RU - СНГ сообщество Python-разработчиков

Чат канала: @python_community_chat

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Модуль requests

requests
— это библиотека для создания HTTP запросов. Установить её можно с помощью этой команды:

pip install requests

Возможности requests настолько велики, что на ней можно написать даже свой браузер или бота. Пройдёмся по некоторым командам:

requests.get() — создаёт GET запрос на сервер. Чаще всего, это запрос страницы от пользователя.

Необязательный параметр params принимает список параметров, которые мы видим в ссылке после "?".

requests. post()(без пробела после точки) создаёт POST запрос на сервер. Это какие-либо данные, поступающие от пользователя.

Необязательный параметр data здесь позволяет настроить, какие данные нужно отправлять на сервер.
⚡️ Модуль string

Это — интегрированная библиотека для работы со строками, которая содержит в себе полезные данные и классы.

ascii_letters — все ascii буквы, включая большие и маленькие. Состоит из ascii_lowercase и ascii_uppercase.

printable — Все символы, которые считаются пригодными для печати. Комбиннация digits, ascii_letters, punctuation, whitespace

whitespace
— символы, которые считаются нечитаемыми (пробел, табуляция, перенос на новую строку и так далее)

string.Formatter — класс для форматирования строки. Например, подстановка значений или их ограничение.

format(string, *args, *kwargs) — метод для постановки значений в строку. Он вызывает vformat(string, args, kwargs), который используется чтобы напрямую передать словарь или список без его упаковки.
⚡️ Форматирование с помощью %

Конечно, вариант с format — лучше и проще, но часто встречается и такой способ форматирования.

%d, %s, %f — после символа процента обычно пишут тип передаваемого объекта. В данном случае, оператор % принимает кортеж.

Самые часто используемые типы — это %d (целое число), %s (строка в нормальном для человека восприятии) и %f (число с плавающей точкой float).

%(value)s, %(value)d — Получает значение из словаря. индекс передан внутри скобочек, а после идёт тип как выше.
⚡️ Как работать с zip архивами?

zipfile
— это модуль, позволяющий работать с архивами расширения .zip. Он уже установлен в python и для работы с ним достаточно просто импортировать библиотеку.

ZipFile(file, mode) — конструктор класса. Он принимает путь к архиву для работы с ним и режим (r - чтение, w - запись, по умолчанию - r).

ZipFile . open(file) — открывает файл внутри архива. Вы можете работать с ним как и с обычными файлами.

ZipFile.extract(file) — разархивирует файл в открытую директорию. Для получения всех файлов используйте extractall().

ZipFile.getinfo(file)
—возвращает класс ZipInfo с информацией об файле с путём file.
⚡️ Форматирование строк с помощью format

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

Остановимся на нём подробнее:

{} — на месте этих скобочек будут находится аргументы, переданные в format, внутри которых могут быть некоторые настройки

{0}, {1}, {2} — берутся значения из *args с индесом внутри фигурных скобок.

{index}, {score} — из списка **kwargs вставляются на места фигурных скобок.
⚡️ Оператор Yield

Этот оператор при каждом своём вызове возвращает объект. Он ведёт себя также, как и итератор.

yield — ключевое слово, которое не уничтожает локальные переменны и позволяет вернуть несколько значений.

yield from — инструкция, которая позволяет вкладывать один итератор/генератор в другой. Он позволяет легко заменить for внутри.

next() — функция, позволяющая извлекать следующий объект из итератора. Цикл for работает на этой функции и вызывает её, пока не получит исключение StopItered.
⚡️ Библиотека Rich

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

Установить модуль можно с помощью команды:

pip install rich

Библиотека помогает работать с цветами, стилями и даже позиционированием текста. Она поддерживает множество языков, Markup и Emoji. Также в ней есть таблицы, синтаксическая подсветка и красивый вывод.

Пример со всеми возможностями модуля можно посмотреть с помощью команды:

python3 -m rich
⚡️ Модуль Faker

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

Скачать его можно с помощью:

pip install Faker

Теперь пройдёмся по его командам:

Faker() — основной класс. Он принимает необязательный аргумент — строку локализации или их список.

Faker . name() (без точек) фальшивое имя. Создаётся на основе переданной локализации.

Faker.address() — Фальшивый адрес. Формат также задаётся локализацией.

Также, можно создать фальшивый ip-адрес, место работы и подобные данные, используя Providers
Итераторы — это что?

Итератор — это объект, который помогает обходить ту или иную последовательность.

Знаю, ничего не понятно. Приведу пример:

У вас есть тележка с камнями, а вам необходимо перенести их в другую тележку.

Вы можете просто взять эти несколько камней в руки и перенести их. Это и быстрее, и эффективнее, но что делать, если камней больше? 5, 20, 50?

Очевидно, что тогда легче будет таскать их по одному.

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

Камни — это некий набор чисел, руки — оперативная память, а вы — посредник (итератор).
Библиотека dash

Dash — это веб-фреймворк для работы с дашбордами и графиками. Он представляет из себя связку react.js, CSS, HTML и даже Flask.

Для установки введите все эти команды поочерёдно:

pip install dash
pip install dash-html-components
pip install dash-core-components
pip install dash-table


Из dash_core_components можно импортировать различные динамические формы, например, выпадающие списки.

А из dash_html_components берутся разные элементы html, такие как div, h1 и т.д.

Также dash содержит фичу, именуемую «hot-reloading». То есть, вам не придётся перезапускать сервер при каждом изменении.
⚡️ Модуль funcy

funcy
— это набор полезных функций, помогающие с работой в python. Скачать его можно по команде:

pip install funcy

Вот несколько полезных функций из этого набора:

merge(*args) — Соединяет все аргументы в один элемент. Работает со списками, словарями, кортежами, множествами и даже строками.

walk (func, obj) — Проходит по всем элементам внутри obj и выполняет func с элементом. Очень похоже на map, но сохраняет возвращаемый тип.

select (func/re, obj) — Проходит по всем элементам и вызывает func, использующийся для сортировки. Также принимает регулярные выражения на месте re.
⚡️ Модуль pympler

Наверное, много кому было интересно, насколько его приложение оптимизированное и что ещё можно улучшить.

В этом поможет библиотека под названием pympler: она может и отслеживать, и анализировать использование памяти разными объектами.

Скачивается она с помощью этой команды:

pip install pympler

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

Кроме того, с его помощью можно анализировать использование памяти в django, что может быть полезно при подборе сервера для сайта.
⚡️ Тестирование и модуль pytest

Автоматическое тестирование — это проверка приложения на все возможные баги не человеком, а заранее написанным для этого кодом.

Оно позволяет при изменении какой-либо части кода проверить, не появились ли ошибки в остальных.

В этом нам поможет pytest. Скачать этот модуль можно с помощью команды:
pip install pytest

Более подробную документацию понятным (английским) языком о модуле можно найти на этом сайте.
⚡️ Модуль Matplotlib

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

Скачать его можно с помощью:

pip install -U matplotlib

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

От одного просто графика до нескольких с разными градиентами, круговыми диаграммами, 3D-визуализацией и т.д. Более подробно расписано на официальном сайте.

Также он поддерживает несколько способов отображения данных, но вам потребуется скачать дополнительные библиотеки.

Кроме того, им поддерживается вывод в svg файл, в веб браузер, GTK3 и в приложение. Более подробно можно просмотреть введя команду matplotlib.use('?').
⚡️ Модуль TensorFlow

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

Изначально все вычисления представлены в виде графов, однако расчёт выполняется по запросу, что позволяет повысить производительность при высокой нагрузке.

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

Помимо всего этого, TensorFlow довольно популярный, что позволяет легко его изучить с помощью других материалов.
#gtts #мини_урок

Преобразовываем текст в речь

Есть разные интерфейсы API для преобразования текста в речь. Воспользуемся одним из самых популярных - Google Text to Speech, широко известный как gTTS API.

Библиотека поддерживает различные языки (русского к сожалению нет). С gTTS можно работать в консоли с помощью gtts-cli. Команда считывает текст, делает нужный запрос и записывает результат в файл.

Устанавливаем: pip install gTTS

Настраиваем: документация

Кому мало gTTS, потестируйте модуль google-cloud-texttospeech. Он имеет гораздо больший функционал, например он может сделать паузу в нужном вам месте.

Кто ещё какими Text to Speech модулями пользуется? Пишите в комментариях. Да, да, да у нас появились комментарии 👇👇👇
Что выведет этот код?
Anonymous Quiz
16%
1
9%
2
27%
3
22%
(4)
25%
Ошибку
⚡️ Редактируем видео с помощью Python

#миниурок #moviepy

В этом нам поможет библиотека moviepy — она позволяет склеивать, обрезать и даже накладывать эффекты на видео.

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

Далее — записываем всю нашу работу в файл, используя несколько потоков.

Стоит обратить внимание, что модуль обрабатывает всё на CPU и, если ваших ресурсов не хватает, стоит воспользоваться выделенными серверами (к примеру, amazon или google) с большей производительностью.

Также, эта библиотека отлично подойдёт для выполнения простых, но повторяющихся операций.