📌 Класс complex() создает/преобразовывает число/строку в комплексное число.
• Класс complex() преобразует строку с записью комплексного числа в комплексное число или вернет комплексное число со значением переданных аргументов: действительной и мнимой частью.
• Если первый параметр является строкой, например '3+5j', то выполнится преобразование строки в комплексное число, в этом случае второй параметр imag должен быть опущен.
• Второй параметр imag никогда не может быть строкой. Каждый аргумент может быть любого числового типа (int или float). Если imag опущен, то по умолчанию используется 0. Если оба аргумента опущены, возвращается 0j.
📕 Документация
#урок
• Класс complex() преобразует строку с записью комплексного числа в комплексное число или вернет комплексное число со значением переданных аргументов: действительной и мнимой частью.
• Если первый параметр является строкой, например '3+5j', то выполнится преобразование строки в комплексное число, в этом случае второй параметр imag должен быть опущен.
• Второй параметр imag никогда не может быть строкой. Каждый аргумент может быть любого числового типа (int или float). Если imag опущен, то по умолчанию используется 0. Если оба аргумента опущены, возвращается 0j.
📕 Документация
#урок
📌 Дзен Python
Философия программирования от Тима Петерса (PEP20). Состоит из 19 руководящих принципов для написания программ.
Интересно, что последнее правило должен был написать сам разработчик Python — Гвидо Ван Россум, но это место до сих пор пустует. Так создатель хотел показать, что в любых правилах есть исключения.
#урок
Философия программирования от Тима Петерса (PEP20). Состоит из 19 руководящих принципов для написания программ.
Интересно, что последнее правило должен был написать сам разработчик Python — Гвидо Ван Россум, но это место до сих пор пустует. Так создатель хотел показать, что в любых правилах есть исключения.
#урок
📌 SQLAlchemy
Object-Relational Mapper (ORM) — представление реляционной базы данных в виде объектов. Больше не придётся писать SQL-код самостоятельно, это сделает библиотека.
SQLAlchemy — самая популярная ORM для Python. Поддерживает асинхронность, так что может спокойно использоваться с aiogram.
#урок
Object-Relational Mapper (ORM) — представление реляционной базы данных в виде объектов. Больше не придётся писать SQL-код самостоятельно, это сделает библиотека.
SQLAlchemy — самая популярная ORM для Python. Поддерживает асинхронность, так что может спокойно использоваться с aiogram.
#урок
📌 Класс bytearray() в Python, преобразует в массив байтов.
Класс bytearray() возвращает массив байтов bytearray, который является изменяемой последовательностью целых чисел в диапазоне от 0 <= х <256.
Необязательный параметр source можно использовать для инициализации массива несколькими различными способами:
• Если это строка, вы также должны указать параметры кодировки строки или будет ошибка. bytearray() преобразует строку в байты, используя str.encode().
• Если это целое число, то массив будет иметь размер переданного числа и будет инициализирован нулевыми байтами.
• Если это объект, соответствующий интерфейсу буфера, для инициализации массива байтов будет использоваться доступный только для чтения буфер объекта.
• Если это итерация, то это должна быть итерация целых чисел в диапазоне 0 <= x < 256, которые будут используются в качестве начального содержимого массива.
• Без аргумента создается массив размером '0'.
📕 Документация
#урок
Класс bytearray() возвращает массив байтов bytearray, который является изменяемой последовательностью целых чисел в диапазоне от 0 <= х <256.
Необязательный параметр source можно использовать для инициализации массива несколькими различными способами:
• Если это строка, вы также должны указать параметры кодировки строки или будет ошибка. bytearray() преобразует строку в байты, используя str.encode().
• Если это целое число, то массив будет иметь размер переданного числа и будет инициализирован нулевыми байтами.
• Если это объект, соответствующий интерфейсу буфера, для инициализации массива байтов будет использоваться доступный только для чтения буфер объекта.
• Если это итерация, то это должна быть итерация целых чисел в диапазоне 0 <= x < 256, которые будут используются в качестве начального содержимого массива.
• Без аргумента создается массив размером '0'.
📕 Документация
#урок
📌 Middleware
Это код, который выполняется перед тем как запустится обработчик. Так можно контролировать нагрузку, делать Antiflood или собирать статистику.
В то время как у
#урок #aiogram
Это код, который выполняется перед тем как запустится обработчик. Так можно контролировать нагрузку, делать Antiflood или собирать статистику.
В то время как у
aiogram 2.0
реализовано множество готовых обработчиков, aiogram 3.0
может похвастаться хорошей документацией.#урок #aiogram
📌 Форматирование параграфа, модуль textwrap
• Функция textwrap.fill() принимает текст в качестве входных данных и возвращает отформатированный текст.
• Текст выравнивается по левому краю, первая строка сохраняет свой отступ, а пробелы в начале каждой последующей строки вставляются в абзац.
📕 Документация
#урок
• Функция textwrap.fill() принимает текст в качестве входных данных и возвращает отформатированный текст.
• Текст выравнивается по левому краю, первая строка сохраняет свой отступ, а пробелы в начале каждой последующей строки вставляются в абзац.
📕 Документация
#урок
🧩 Гайд по магическим методам в Python
• Магические методы в языке программирования Python нужны, чтобы реализовывать свойства объектов при их взаимодействии.
• В статье раскроем их «магию» и остановимся на каждом из методов подробно.
🧷 https://tproger.ru/articles/gajd-po-magicheskim-metodam-v-python/
#Статья
• Магические методы в языке программирования Python нужны, чтобы реализовывать свойства объектов при их взаимодействии.
• В статье раскроем их «магию» и остановимся на каждом из методов подробно.
🧷 https://tproger.ru/articles/gajd-po-magicheskim-metodam-v-python/
#Статья
📌 Форматирование сообщений
Telegram поддерживает два типа форматирования: HTML и MarkdownV2. Есть ещё Markdown, но он уже устарел.
HTML — форматирование с помощью тегов. Если пользователь отправит
MarkdownV2 — форматирование с помощью спецсимволов:
Предпочтительный использовать HTML, с ним меньше шанс допустить ошибку. Вот тут документация от Telegram.
Код
#урок #aiogram
Telegram поддерживает два типа форматирования: HTML и MarkdownV2. Есть ещё Markdown, но он уже устарел.
HTML — форматирование с помощью тегов. Если пользователь отправит
<b>Этот тест будет жирным<b>
, чтобы не применять форматирование, нужно использовать html.quote()
.MarkdownV2 — форматирование с помощью спецсимволов:
__underline__
, bold text, link on MarkdownV2.Предпочтительный использовать HTML, с ним меньше шанс допустить ошибку. Вот тут документация от Telegram.
Код
#урок #aiogram
🧩 Быстро и просто разворачиваем приложение на Selenium Python в Docker
• Selenium — это инструмент, созданный для автоматизации работы браузера. Он имеет довольно длинную историю, но несмотря на это на данный момент он является главным инструментом, если нужно прибегнуть к автоматизации браузера.
• Но у некоторых может возникнуть проблема с развертыванием кода, использующего этот инструмент, на сервере. На самом деле, все очень просто, если вы знакомы с Docker.
🧷 https://tproger.ru/articles/bystro-i-prosto-razvorachivaem-prilozhenie-na-selenium-python-v-docker/
#Статья
• Selenium — это инструмент, созданный для автоматизации работы браузера. Он имеет довольно длинную историю, но несмотря на это на данный момент он является главным инструментом, если нужно прибегнуть к автоматизации браузера.
• Но у некоторых может возникнуть проблема с развертыванием кода, использующего этот инструмент, на сервере. На самом деле, все очень просто, если вы знакомы с Docker.
🧷 https://tproger.ru/articles/bystro-i-prosto-razvorachivaem-prilozhenie-na-selenium-python-v-docker/
#Статья
🧩 Как создать собственные Python-декораторы и правильно их использовать
• Статья рассчитана на тех, кто владеет основами Python, знаком с декораторами и хочет научиться создавать собственные декораторы для повышения качества кода.
🧷 https://tproger.ru/articles/kak-sozdat-sobstvennye-python-dekoratory-i-pravilno-ih-ispolzovat/
#Статья
• Статья рассчитана на тех, кто владеет основами Python, знаком с декораторами и хочет научиться создавать собственные декораторы для повышения качества кода.
🧷 https://tproger.ru/articles/kak-sozdat-sobstvennye-python-dekoratory-i-pravilno-ih-ispolzovat/
#Статья
🧩 Лайфхаки Python: сэкономить память и ускорить выполнение программы
• Python часто ругают за то, что он медленный. Однако в нем существует несколько подходов, которые позволяют писать достаточно быстрый код. Сегодня поговорим про обработку списков.
🧷 https://tproger.ru/articles/lajfhaki-python-sjekonomit-pamjat-i-uskorit-vypolnenie-programmy/
#Статья
• Python часто ругают за то, что он медленный. Однако в нем существует несколько подходов, которые позволяют писать достаточно быстрый код. Сегодня поговорим про обработку списков.
🧷 https://tproger.ru/articles/lajfhaki-python-sjekonomit-pamjat-i-uskorit-vypolnenie-programmy/
#Статья
Сериализация объектов Python с помощью Pickle
• В данном видео мы узнаем как использовать Pickle для сериализации и десериализации данных, узнаем в каких случаях это стоит применять и какие особенности данной технологии.
• Также в конце видео рассмотрим уязвимости технологии и почему стоит её применять правильно. Если не знать об этом, можно создать проект, который будет уязвим к атакам.
🧷 https://youtu.be/jpBTigXHUeA
#Видео
• В данном видео мы узнаем как использовать Pickle для сериализации и десериализации данных, узнаем в каких случаях это стоит применять и какие особенности данной технологии.
• Также в конце видео рассмотрим уязвимости технологии и почему стоит её применять правильно. Если не знать об этом, можно создать проект, который будет уязвим к атакам.
🧷 https://youtu.be/jpBTigXHUeA
#Видео
Оператор "is" Python сложнее, чем вы думаете
• Подводные камни оператора is, которые могут вас удивить.
• Многие используют оператор "is" для сравнения значений, но не все знают, что это может вызвать огромное количество багов, если не знать о его особенностях, которые рассматриваются в данном видео.
• Мы также рассмотрим примеры, где его точно не следует применять и узнаем о том, почему именно он вызывает подобные баги и как это работает на более низком уровне.
🧷 https://youtu.be/mQk1NIV3HXM
#Видео
• Подводные камни оператора is, которые могут вас удивить.
• Многие используют оператор "is" для сравнения значений, но не все знают, что это может вызвать огромное количество багов, если не знать о его особенностях, которые рассматриваются в данном видео.
• Мы также рассмотрим примеры, где его точно не следует применять и узнаем о том, почему именно он вызывает подобные баги и как это работает на более низком уровне.
🧷 https://youtu.be/mQk1NIV3HXM
#Видео
Как избавиться от циклов импорта в Python?
• В данном видео рассмотрим циклический импорт в Python, который мешает вашей программе сделать нормальную инициализацию модуля.
• В видео есть множество примеров с ошибками, которые могут разрушить ваш проект, и также на каждую ошибку приводится её решение.
🧷 https://youtu.be/dnWgblsNcGA
#Видео
• В данном видео рассмотрим циклический импорт в Python, который мешает вашей программе сделать нормальную инициализацию модуля.
• В видео есть множество примеров с ошибками, которые могут разрушить ваш проект, и также на каждую ошибку приводится её решение.
🧷 https://youtu.be/dnWgblsNcGA
#Видео
📌 Webhook'и
Альтернативный способ получать обновления от серверов Telegram — вебхуки. Бот говорит, на какую ссылку нужно отправлять данные когда происходит какое-то событие.
Библиотека
Вебхуки в Telegram работают только с https ссылками. Если вы не желаете покупать сертификат, можете использовать самоподписанный, но его надо будет передавать в
Гайд по вебхукам от тг
#урок #aiogram
Альтернативный способ получать обновления от серверов Telegram — вебхуки. Бот говорит, на какую ссылку нужно отправлять данные когда происходит какое-то событие.
Библиотека
aiogram
использует aiohttp
как клиент и сервер. Чтобы проверить работоспособность нужен сервер или белый IP, это есть не у всех, поэтому лучше использовать ngrok.Вебхуки в Telegram работают только с https ссылками. Если вы не желаете покупать сертификат, можете использовать самоподписанный, но его надо будет передавать в
bot.set_webhook()
.Гайд по вебхукам от тг
#урок #aiogram
Ctypes Python – огромная скорость и безопасность компонентов
• В данном видео мы рассмотрим способы интеграции Python с языками Си и С++. Мы создадим 3 компонента на языки Си, скомпилируем их в готовые динамические библиотеки и подключим в Python для использования. Сам Python в данном примере служит лишь удобным интерфейсом для взаимодействия с библиотеками.
🧷 https://youtu.be/mYRBJ3oZ0Tw
#Видео
• В данном видео мы рассмотрим способы интеграции Python с языками Си и С++. Мы создадим 3 компонента на языки Си, скомпилируем их в готовые динамические библиотеки и подключим в Python для использования. Сам Python в данном примере служит лишь удобным интерфейсом для взаимодействия с библиотеками.
🧷 https://youtu.be/mYRBJ3oZ0Tw
#Видео
📌
Такой подход называется Bot polling. Он не очень эффективный, время от времени отваливается и создаёт много «шума», поэтому лучше использовать Webhook'и (в след. посте), но за них кому-то придётся платить.
#урок #aiogram
Bot polling
Чтобы понять, написал кто-либо боту или нет, он несколько раз в минуту отправляет запрос на сервера Telegram и спрашивает: «Случилось ли что-то интересненькое?»Такой подход называется Bot polling. Он не очень эффективный, время от времени отваливается и создаёт много «шума», поэтому лучше использовать Webhook'и (в след. посте), но за них кому-то придётся платить.
#урок #aiogram