Python Academy
44.4K subscribers
1.55K photos
2 videos
484 links
Python Academy — один канал вместо тысячи учебников

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

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

Канал включён в перечень РКН: https://rkn.link/TVu
Download Telegram
Pyfiglet — генерация ASCII-арт текста

Pyfiglet — это библиотека Python, которая позволяет легко создавать красивый ASCII-арт текст прямо в консоли. Идеально подходит для добавления стилизованных заголовков и баннеров в ваши консольные приложения.

Отличный способ оживить вывод вашего кода и привлечь внимание к важным сообщениям.
👍3👎2
Прочитать произвольную строку из файла

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

И конечно же не обошлось без приветствия, вы специально заготовили несколько различных вариантов в файле text.txt:

Приветствую!
Здравствуйте!
Ку, здарова.
Добрый день!
Привет!

Чтобы вывести это на экран, может помочь функция getline из модуля linecache. В чем главное отличие этой функции от обычного метода чтения из файла? Функция getline кеширует все строчки файла в списке, так что следующие вызовы get_answer отработают моментально.

#linecache #file
4👎2
Применяем pathlib взамен os

В Python 3 стандартная библиотека включает модуль pathlib, предоставляющий функцию Path, которая обеспечивает все необходимое для эффективной работы с путями к файлам.

Одно из наиболее впечатляющих преимуществ использования pathlib - это упрощение работы с путями за счет использования Path вместо os.path.join, представляя более простой и изящный метод, как показано на изображении.

В общем, этот модуль предлагает замену функциям для работы с файловыми путями из модуля os, таким как os.mkdir или os.path, на более удобные альтернативы.

#path #os
👍1👎1
Мощная декларативная библиотека для работы с датой и временем

Большинство разработчиков знают про модуль datetime из стандартной библиотеки - достаточно хороший инструмент для работы с временем. Но не лишним будет узнать про его мощное расширение - dateutil.

dateutil позволяет писать краткий и декларативный код для решения задач по взаимодействию с датой и временем.

На скриншоте показано получение первого дня прошлого месяца с помощью dateutil и без.

Примечательно то, что dateutil позиционируется как расширение для datetime, что значит, что они друг с другом совместимы.
👎21🔥1
Упаковка параметров с помощью urlencode

Довольно часто приходится работать с разнообразными API и совершать get-запросы с передачей множества параметров. Чаще всего составление запроса в коде выглядит примерно так:

url = 'https://example.com?item={}&size={}&color={}&amount={}'.format('t-shirt', 'M', 'white', 5)

Смотрится не слишком презентабельно, однако есть слегка более длинный, но значительно улучающий читаемость кода вариант – функция urlencode из модуля urllib.

#трюки #urllib
👎1
Как работают статические методы

Статические методы создаются в классе при помощи декоратора @staticmethod. Такие методы привязаны к классу, а не объекту — в этом и есть основное отличие.

Такой тип методов не может модифицировать ни объект, ни сам класс. То есть передавать объект или класс и прописывать self или cls в аргументах не нужно.

Обычную функцию стоит вносить в класс в качестве статического метода в том случае, когда эта функция логически относится к классу и имеет смысл там быть.

#ооп
👎2
Генерация QR кодов

Сегодня покажем создание QR кодов. Для этого нам понадобится модуль qrcode, который используется для создания изображений с QR кодом.

Все максимально просто, за нас по сути все делает уже написанный модуль.

Выше на картинке мы сделали простую функцию generate, которая принимает какую-то информацию и название файла, в который нужно сохранить результат в виде QR кода.

За создание картинки отвечает метод qrcode.make, который возвращает нам изображение в формате PIL.Image, а после этого мы его сохраняем в нужном нам файле.

Получившийся QR код можете посмотреть тут.

#qrcode #pillow
👎32
RabbitMQ: Брокерская система сообщений для асинхронной обработки данных

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

Для взаимодействия с RabbitMQ на языке программирования Python часто используется библиотека pika. Pika предоставляет удобный интерфейс для работы с RabbitMQ, позволяя отправлять и принимать сообщения в очереди.

Ключевые характеристики RabbitMQ:

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

2. Маршрутизация: RabbitMQ обеспечивает гибкую маршрутизацию сообщений с использованием обменников (exchanges) и очередей (queues). Это позволяет точно определить, какие сообщения должны быть отправлены в какие очереди.

3. Надежность: RabbitMQ обеспечивает сохранность данных даже в случае сбоев. Он поддерживает различные стратегии обработки ошибок и перенаправления сообщений.

4. Поддержка множества протоколов: RabbitMQ поддерживает несколько протоколов связи, включая AMQP (Advanced Message Queuing Protocol) и MQTT (Message Queuing Telemetry Transport). Это делает его универсальным и пригодным для различных типов приложений.
2👎1
Peewee: Легкая и мощная ORM библиотека для работы с базами данных на Python

Peewee - это небольшая и высокоэффективная ORM (Object-Relational Mapping) библиотека на Python, которая облегчает взаимодействие с базами данных и управление данными в ваших приложениях. Она предоставляет удобные средства для создания, чтения, обновления и удаления данных в базе данных, что делает работу с БД более интуитивной и удобной.

Для начала работы с Peewee, вы можете установить библиотеку с помощью pip. Затем вы можете определить модели данных и их отношения, а Peewee автоматически создаст соответствующую структуру в вашей базе данных. Peewee поддерживает различные типы баз данных, включая SQLite, MySQL, PostgreSQL и другие.

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

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

Документация доступна тут
👎1
Вычисление выражений Python

Вы наверняка знакомы с eval, но знаете ли вы о literal_eval? Вряд ли. Для безопасного исполнения выражений, содержащих исключительно литералы, вы можете делать так, как показано на картинке выше.

Между прочим, данная фича находится в языке уже очень давно.

#tips #eval
👍1👎1
Прочитать произвольную строку из файла

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

И конечно же не обошлось без приветствия, вы специально заготовили несколько различных вариантов в файле text.txt:

Приветствую!
Здравствуйте!
Ку, здарова.
Добрый день!
Привет!

Чтобы вывести это на экран, может помочь функция getline из модуля linecache. В чем главное отличие этой функции от обычного метода чтения из файла? Функция getline кеширует все строчки файла в списке, так что следующие вызовы get_answer отработают моментально.

#linecache #file
👎1