Python | Программирование
9.48K subscribers
2.15K photos
3 videos
139 files
1.85K links
Python без границ для всех

Владелец, реклама @Ak_Mihail

Преобрести рекламное размещение: https://telega.in/c/Python_libr
Download Telegram
📌 Модуль python-docx, cсоздание/изменение документов DOCX.

• Он предназначен для создания и обновления файлов с расширением .docx - Microsoft Word. Этот модуль имеет одну зависимость: сторонний модуль lxml.

• Первое, что вам понадобится, это документ, над которым вы будете работать. Самый простой способ(код на картинке).

• При этом создается пустой документ, основанный на "шаблоне" по умолчанию. Другими словами, происходит примерно то же самое, когда пользователь нажимает на иконку в Microsoft Word "Новый документ" с использованием встроенных значений по умолчанию.

📕 Документация

#урок
👍63
📌 Модуль qrcode в Python, генератор QR кодов.

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

• Закодированная информация может состоять из данных любого типа (например, двоичных, буквенно-цифровых символов или символов Кандзи).

Простой пример создания QR-кода на Python, средствами стороннего модуля qrcode (код на картинке).

📕 Документация

#урок
6🔥2
📌 Модуль python-docx, cсоздание/изменение документов DOCX.

• Он предназначен для создания и обновления файлов с расширением .docx - Microsoft Word. Этот модуль имеет одну зависимость: сторонний модуль lxml.

• Первое, что вам понадобится, это документ, над которым вы будете работать. Самый простой способ(код на картинке).

• При этом создается пустой документ, основанный на "шаблоне" по умолчанию. Другими словами, происходит примерно то же самое, когда пользователь нажимает на иконку в Microsoft Word "Новый документ" с использованием встроенных значений по умолчанию.

📕 Документация

#урок
5👍3
📌 Функция vars() в Python, словарь переменных объекта.

• Функция vars() вернет атрибут dict - словарь пространства имен для модуля, класса, экземпляра или любого другого объекта с атрибутом dict.

• Такие объекты, как модули и экземпляры классов, имеют обновляемый dict атрибут, однако другие объекты могут иметь ограничения для записи своих атрибутов dict, например классы, которые используют types.MappingProxyType для предотвращения прямого обновления словаря.

• Без аргумента vars() действует как встроенная функция locals(). Обратите внимание, что словарь переменных локальной области видимости полезен только для чтения, поскольку обновление словаря локальной области видимости игнорируются интерпретатором.

Пример получения словаря пространства имен, используемых объектом (код на картинке).

📕 Документация

#урок
👍53
📌 Класс type() в Python, возвращает тип объекта.

• Класс type() с одним аргументом object возвращает тип объекта. Возвращаемое значение - это как правило, тот же объект, что и возвращаемый object.class.

• Рекомендуется для проверки типа объекта использовать встроенную функцию isinstance(), так как она принимает во внимание подклассы.

Пример использования класса type() при вызове с одним аргументом (код на картинке).

📕 Документация

#урок
5👍4
📌 Класс tuple() в Python, создает или преобразует в кортеж.

• Класс tuple() создает новую неизменяемую последовательность - кортеж из итерируемого объекта, элементы которого идут в том же порядке, что и элементы переданного в качестве аргумента объекта.

• Объектом может быть последовательность или контейнер, который поддерживает итерацию, либо объект итератора.

— Если iterable уже является кортежем, он возвращается без изменений. Например, tuple('abc') возвращает ('a', 'b', 'c') и tuple([1, 2, 3]) вернет (1, 2, 3).
— Если аргумент не указан, конструктор создает новый пустой кортеж ().

Пример создания кортежа, преобразования объектов в кортеж (код на картинке).

📕 Документация

#урок
4👍4
📌 Webhook'и

Альтернативный способ получать обновления от серверов Telegram — вебхуки. Бот говорит, на какую ссылку нужно отправлять данные когда происходит какое-то событие.

Библиотека aiogram использует aiohttp как клиент и сервер. Чтобы проверить работоспособность нужен сервер или белый IP, это есть не у всех, поэтому лучше использовать ngrok.

Вебхуки в Telegram работают только с https ссылками. Если вы не желаете покупать сертификат, можете использовать самоподписанный, но его надо будет передавать в bot.set_webhook().

Гайд по вебхукам от тг

#урок #aiogram
5🔥3
📌 logging

Это встроенная библиотека для ведения логов. По ней есть хороший HOWTO на официальном сайте Python (англ. яз.)

Из него вы узнаете как использовать logging, когда какой уровень использовать, в чём разница между ERROR и CRITICAL и как при этом заставить приложение работать быстро.

#урок
7🔥2
📌 Переходим к новинкам: Router()

Это объект, с помощью которого можно разделить обработчики (handlers) на несколько файлов, а после подключить к основному Dispatcher().

Раньше для этого приходилось делать dispatcher глобальным или писать register_handlers().

#урок #aiogram
4👍2🔥2
📌 Типы обработчики (handlers)

Функции которые обрабатывают сообщения — обработчики. Они принимает определённый тип сообщений и работают с ними.

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

#урок #aiogram
6👍2
📌 Форматирование сообщений

Telegram поддерживает два типа форматирования: HTML и MarkdownV2. Есть ещё Markdown, но он уже устарел.

HTML — форматирование с помощью тегов. Если пользователь отправит <b>Этот тест будет жирным<b>, чтобы не применять форматирование, нужно использовать html.quote().

MarkdownV2 — форматирование с помощью спецсимволов: __underline__, bold text, link on MarkdownV2.

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

Код

#урок #aiogram
5🔥2
📌 Кнопки

Есть два вида кнопок:

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

Инлайн-кнопки — появляются по сообщениями. Могут пересылать людей на определённый URL, отправлять сообщения с данными боту и т.д.

Код

#урок #aiogram
6👍3👎1
📌 Фабрика колбэков

Передавать данные в Inline-кнопки как строки — не удобно. Данные тяжело считывается, код тяжело читается.

Для решения проблемы есть класс CallbackData, с его помощью создаётся класс, который самостоятельно составляет строку и обрабатывает её. Программисту остаётся работать только с объектом.

Код

#урок #aiogram
👍63