Python | Программирование
9.87K subscribers
1.82K photos
2 videos
139 files
1.53K links
Python без границ для всех

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

Преобрести рекламное размещение: https://telega.in/c/Python_libr
加入频道
Как избавиться от циклов импорта в Python?

• В данном видео рассмотрим циклический импорт в Python, который мешает вашей программе сделать нормальную инициализацию модуля.

• В видео есть множество примеров с ошибками, которые могут разрушить ваш проект, и также на каждую ошибку приводится её решение.

🧷 https://youtu.be/dnWgblsNcGA

#Видео
Оператор "is" Python сложнее, чем вы думаете

• Подводные камни оператора is, которые могут вас удивить.

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

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

🧷 https://youtu.be/mQk1NIV3HXM

#Видео
📌 logging

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

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

#урок
Сериализация объектов Python с помощью Pickle

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

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

🧷 https://youtu.be/jpBTigXHUeA

#Видео
📌 Переходим к новинкам: Router()

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

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

#урок #aiogram
🧩 Лайфхаки Python: сэкономить память и ускорить выполнение программы

• Python часто ругают за то, что он медленный. Однако в нем существует несколько подходов, которые позволяют писать достаточно быстрый код. Сегодня поговорим про обработку списков.

🧷 https://tproger.ru/articles/lajfhaki-python-sjekonomit-pamjat-i-uskorit-vypolnenie-programmy/

#Статья
📌 Типы обработчики (handlers)

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

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

#урок #aiogram
🧩 Как создать собственные Python-декораторы и правильно их использовать

• Статья рассчитана на тех, кто владеет основами Python, знаком с декораторами и хочет научиться создавать собственные декораторы для повышения качества кода.

🧷 https://tproger.ru/articles/kak-sozdat-sobstvennye-python-dekoratory-i-pravilno-ih-ispolzovat/

#Статья
🧩 Быстро и просто разворачиваем приложение на Selenium Python в Docker

• Selenium — это инструмент, созданный для автоматизации работы браузера. Он имеет довольно длинную историю, но несмотря на это на данный момент он является главным инструментом, если нужно прибегнуть к автоматизации браузера.

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

🧷 https://tproger.ru/articles/bystro-i-prosto-razvorachivaem-prilozhenie-na-selenium-python-v-docker/

#Статья
📌 Форматирование сообщений

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

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

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

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

Код

#урок #aiogram
🧩 Гайд по магическим методам в Python

• Магические методы в языке программирования Python нужны, чтобы реализовывать свойства объектов при их взаимодействии.

• В статье раскроем их «магию» и остановимся на каждом из методов подробно.

🧷 https://tproger.ru/articles/gajd-po-magicheskim-metodam-v-python/

#Статья
📌 Кнопки

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

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

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

Код

#урок #aiogram
Дорожная карта по Python

• Полезная дорожная карта, которая пригодится начинающим Python-разработчикам и поможет определиться в дальнейшем развитии.

#Roadmap
📌 Фабрика колбэков

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

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

Код

#урок #aiogram
📌 Форматирование параграфа, модуль textwrap

• Функция textwrap.fill() принимает текст в качестве входных данных и возвращает отформатированный текст.

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

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

#урок
Полная шпаргалка по Python

• Эта шпаргалка содержит всю необходимую информацию для всех уровней разработки.

🧩 Смотреть шпаргалку

#Шпаргалка
📌 Middleware

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

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

#урок #aiogram
📌 Класс bytearray() в Python, преобразует в массив байтов.

Класс bytearray() возвращает массив байтов bytearray, который является изменяемой последовательностью целых чисел в диапазоне от 0 <= х <256.

Необязательный параметр source можно использовать для инициализации массива несколькими различными способами:

• Если это строка, вы также должны указать параметры кодировки строки или будет ошибка. bytearray() преобразует строку в байты, используя str.encode().
• Если это целое число, то массив будет иметь размер переданного числа и будет инициализирован нулевыми байтами.
• Если это объект, соответствующий интерфейсу буфера, для инициализации массива байтов будет использоваться доступный только для чтения буфер объекта.
• Если это итерация, то это должна быть итерация целых чисел в диапазоне 0 <= x < 256, которые будут используются в качестве начального содержимого массива.
• Без аргумента создается массив размером '0'.

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

#урок
📌 SQLAlchemy

Object-Relational Mapper (ORM) — представление реляционной базы данных в виде объектов. Больше не придётся писать SQL-код самостоятельно, это сделает библиотека.

SQLAlchemy — самая популярная ORM для Python. Поддерживает асинхронность, так что может спокойно использоваться с aiogram.

#урок
📌 Класс bytes() в Python, преобразует в строку байтов.

Класс bytes() возвращает байтовый объект bytes, который является неизменяемой последовательностью целых чисел в диапазоне от 0 <= х <256.

Необязательный параметр source используется для инициализации массива несколькими различными способами:

• Если это строка, вы также должны указать параметры кодировки строки или будет ошибка. bytes() преобразует строку в строку байтов, используя str.encode().
• Если это целое число, то строка будет иметь размер переданного числа и будет заполнена нулевыми байтами.
• Если это объект, соответствующий интерфейсу буфера, для инициализации строки байтов будет использоваться доступный только для чтения буфер объекта.
• Если это итерация, то это должна быть итерация целых чисел в диапазоне 0 <= x < 256, которые будут используются в качестве содержимого строки.
• Без аргумента создается пустая байтовая строка.

Байтовые строки также могут быть созданы с помощью строкового литерала b

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

#урок