📌 Функция delattr() в Python, удаляет атрибут объекта
• Функция delattr() удаляет из объекта указанный атрибут, если объект позволяет это сделать.
• Строка с именем должна быть именем одного из атрибутов объекта. Функция удаляет указанный атрибут, если объект позволяет это.
• Функция delattr() синоним директивы del. Например, delattr(x, 'foobar') эквивалентно del x.foobar.
• Пример удаления атрибута объекта (код на картинке).
📕 Документация
#урок
• Функция delattr() удаляет из объекта указанный атрибут, если объект позволяет это сделать.
• Строка с именем должна быть именем одного из атрибутов объекта. Функция удаляет указанный атрибут, если объект позволяет это.
• Функция delattr() синоним директивы del. Например, delattr(x, 'foobar') эквивалентно del x.foobar.
• Пример удаления атрибута объекта (код на картинке).
📕 Документация
#урок
📌 aoihttp
Это асинхронная библиотека, которая может одновременно составлять запросы и принимать их, то есть выступать клиентом и сервером.
Установка:
#урок
Это асинхронная библиотека, которая может одновременно составлять запросы и принимать их, то есть выступать клиентом и сервером.
Установка:
pip install aiohttp[speedups]
[speedups]
дополнительно устанавливает cchardet и aiodns — библиотеки, ускоряющие работу aiohttp.#урок
📌 Класс frozenset() в Python, преобразует в неизменяемое множество.
• Класс frozenset() преобразует строку или любую последовательность(итерацию) "хешируемых" объектов в неизменяемое множество frozenset (неупорядоченная, неизменяемая последовательность с исключением дубликатов элементов в последовательности).
• Если аргумент не указан, возвращается пустой, неизменяемый frozenset.
Примечание:
• Объект является "хешируемым", если у него есть хеш-значение, которое не изменяется в течение его времени жизни. Большинство неизменяемых встроенных объектов Python являются "хешируемыми". Изменяемые контейнеры, такие как списки или словари, не являются "хешируемыми"
📕 Документация
#урок
• Класс frozenset() преобразует строку или любую последовательность(итерацию) "хешируемых" объектов в неизменяемое множество frozenset (неупорядоченная, неизменяемая последовательность с исключением дубликатов элементов в последовательности).
• Если аргумент не указан, возвращается пустой, неизменяемый frozenset.
Примечание:
• Объект является "хешируемым", если у него есть хеш-значение, которое не изменяется в течение его времени жизни. Большинство неизменяемых встроенных объектов Python являются "хешируемыми". Изменяемые контейнеры, такие как списки или словари, не являются "хешируемыми"
📕 Документация
#урок
📌 Функция eval() выполняет строку-выражение с кодом.
• Функция eval() выполняет строку-выражение, переданную ей в качестве обязательного аргумента и возвращает результат выполнения этой строки.
• Аргументами eval() являются строка-выражение expression, которую требуется исполнить и необязательные глобальные globals и локальные locals значения. Передаваемые в функцию глобальные переменные должны быть словарем dict. Передаваемые локальные переменные могут быть любым отображающим объектом.
• Если глобальные переменные указаны, но словарь globals не содержит атрибута __builtins__ данные переданного словаря со значениями будут дополнены данными общего глобального пространства, перед разбором выражения. Таким образом, выражение будет иметь доступ ко всем встроенным модулям.
📕 Документация
#урок
• Функция eval() выполняет строку-выражение, переданную ей в качестве обязательного аргумента и возвращает результат выполнения этой строки.
• Аргументами eval() являются строка-выражение expression, которую требуется исполнить и необязательные глобальные globals и локальные locals значения. Передаваемые в функцию глобальные переменные должны быть словарем dict. Передаваемые локальные переменные могут быть любым отображающим объектом.
• Если глобальные переменные указаны, но словарь globals не содержит атрибута __builtins__ данные переданного словаря со значениями будут дополнены данными общего глобального пространства, перед разбором выражения. Таким образом, выражение будет иметь доступ ко всем встроенным модулям.
📕 Документация
#урок
📌 Класс dict() в Python создает словарь.
• Функция dict() создаст словарь, инициализированный из необязательного позиционного аргумента и возможно пустого набора ключевых аргументов.
• Если позиционный аргумент не задан, создается пустой словарь. Если заданы позиционные аргументы и они являются объектами сопоставления ('one': 1), создается словарь с теми же парами ключ-значение, что и объект сопоставления. В противном случае позиционный аргумент должен быть итерируемым объектом. Каждый элемент в массиве должен быть итерируемым с двумя объектами. Первый объект каждого элемента становится ключом в новом словаре, а второй объект-соответствующим значением. Если ключ встречается более одного раза, последнее значение для этого ключа становится соответствующим значением в новом словаре.
• Если заданы ключевые аргументы и их значения добавляются в словарь, созданный из позиционных аргументов, то значение одинакового ключа из позиционного аргумента заменяется значением ключевого аргумента.
• Предоставление ключевых аргументов dict(one=1, two=2, three=3) работает только для ключей, которые являются действительными идентификаторами Python. В противном случае могут быть использованы любые действительные ключи.
📕 Документация
#урок
• Функция dict() создаст словарь, инициализированный из необязательного позиционного аргумента и возможно пустого набора ключевых аргументов.
• Если позиционный аргумент не задан, создается пустой словарь. Если заданы позиционные аргументы и они являются объектами сопоставления ('one': 1), создается словарь с теми же парами ключ-значение, что и объект сопоставления. В противном случае позиционный аргумент должен быть итерируемым объектом. Каждый элемент в массиве должен быть итерируемым с двумя объектами. Первый объект каждого элемента становится ключом в новом словаре, а второй объект-соответствующим значением. Если ключ встречается более одного раза, последнее значение для этого ключа становится соответствующим значением в новом словаре.
• Если заданы ключевые аргументы и их значения добавляются в словарь, созданный из позиционных аргументов, то значение одинакового ключа из позиционного аргумента заменяется значением ключевого аргумента.
• Предоставление ключевых аргументов dict(one=1, two=2, three=3) работает только для ключей, которые являются действительными идентификаторами Python. В противном случае могут быть использованы любые действительные ключи.
📕 Документация
#урок
📌 Context Manager
Это мощный инструмент для управления ресурсами: файлами, которые нужно закрывать, соединениями, блокировками. Если что-то нужно сделать после работы с файлом, лучше всего использовать with.
Оператор вызывает
#урок
Это мощный инструмент для управления ресурсами: файлами, которые нужно закрывать, соединениями, блокировками. Если что-то нужно сделать после работы с файлом, лучше всего использовать with.
Оператор вызывает
__enter__
у объекта, выполняет первоначальные функции, а по окончанию работы — exit, где менеджер может освободить ресурсы, закрыть файл или соединение.#урок
🔖 Шпаргалка по типам данных
• Типы данных - это классификация или категоризация элементов данных. Он представляет собой тип значения, которое указывает, какие операции могут быть выполнены с конкретными данными. Поскольку в программировании на Python все является объектом, типы данных на самом деле являются классами, а переменные-экземплярами (объектами) этих классов.
#Шпаргалка
• Типы данных - это классификация или категоризация элементов данных. Он представляет собой тип значения, которое указывает, какие операции могут быть выполнены с конкретными данными. Поскольку в программировании на Python все является объектом, типы данных на самом деле являются классами, а переменные-экземплярами (объектами) этих классов.
#Шпаргалка
🔖 Шпаргалка по функциям Python
• Функция в Python — это фрагмент кода для повторного использования, который применяется для выполнения одного связанного действия.
#Шпаргалка
• Функция в Python — это фрагмент кода для повторного использования, который применяется для выполнения одного связанного действия.
#Шпаргалка
📌 SQLite
Реляционная база данных внутри файла. У неё только базовые возможности, но она подойдёт для маленьких систем и для тестирования.
Для работы с ней есть встроенная библиотека —
📕 Документация
#урок
Реляционная база данных внутри файла. У неё только базовые возможности, но она подойдёт для маленьких систем и для тестирования.
Для работы с ней есть встроенная библиотека —
sqlite3
. Также SQLite можно использовать и вместе с ORM, такими как SQLAlchemy.📕 Документация
#урок
🧩 Обзорный анализ Python веб-фреймворков
• Вместе с ML и Data Science, Web является одним из трёх китов, на которых стоит популярность языка Python. В данном анализе опустим все прелести Python и рассмотрим только веб-инструментарий, то есть фреймворки. Посмотрим, что выгодно отличает их от фреймворков в других языках, и разберём, в чём они конкурируют между собой.
🧷 https://tproger.ru/articles/obzornyj-analiz-python-veb-frejmvorkov/
#Статья
• Вместе с ML и Data Science, Web является одним из трёх китов, на которых стоит популярность языка Python. В данном анализе опустим все прелести Python и рассмотрим только веб-инструментарий, то есть фреймворки. Посмотрим, что выгодно отличает их от фреймворков в других языках, и разберём, в чём они конкурируют между собой.
🧷 https://tproger.ru/articles/obzornyj-analiz-python-veb-frejmvorkov/
#Статья
🧩 Списки в Python: методы и основные операции
• Списки в Python представляют собой упорядоченные изменяемые наборы объектов, пронумерованных от 0. При этом объекты могут быть разными — от целых чисел до строк. Списки могут также хранить в себе списки.
• В статье разберёмся с базовыми принципами списков в Питоне, а также рассмотрим методы работы с ними.
🧷 https://tproger.ru/articles/spiski-v-python-osnovy-i-metody/
#Статья
• Списки в Python представляют собой упорядоченные изменяемые наборы объектов, пронумерованных от 0. При этом объекты могут быть разными — от целых чисел до строк. Списки могут также хранить в себе списки.
• В статье разберёмся с базовыми принципами списков в Питоне, а также рассмотрим методы работы с ними.
🧷 https://tproger.ru/articles/spiski-v-python-osnovy-i-metody/
#Статья
📌 secrets
Модуль random генерирует псевдослучайные числа, а значит их можно предсказать имея определённые данные. Он не может использоваться в криптографии, а secrets — вполне.
Основная фишка в генерации токенов в виде набора байтов, шестнадцатеричных чисел или фрагмента ссылки.
#урок
Модуль random генерирует псевдослучайные числа, а значит их можно предсказать имея определённые данные. Он не может использоваться в криптографии, а secrets — вполне.
Основная фишка в генерации токенов в виде набора байтов, шестнадцатеричных чисел или фрагмента ссылки.
#урок
🧩 Подробный Python: или как переступить границу знаний
• Хотите чтобы ваш код выглядел качественно и лаконично и говорил о вас, как об опытном разработчике? Тогда давайте окунёмся немного глубже базовых знаний и посмотрим, насколько можно упростить свой код, как сделать его читаемым и не потерять желание возвращаться к своей работе снова.
🧷 https://tproger.ru/articles/podrobnyj-python-ili-kak-perestupit-granicu-znanij/
#Статья
• Хотите чтобы ваш код выглядел качественно и лаконично и говорил о вас, как об опытном разработчике? Тогда давайте окунёмся немного глубже базовых знаний и посмотрим, насколько можно упростить свой код, как сделать его читаемым и не потерять желание возвращаться к своей работе снова.
🧷 https://tproger.ru/articles/podrobnyj-python-ili-kak-perestupit-granicu-znanij/
#Статья
🧩 Как напечатать таблицу с помощью f-string
В этой статье мы разберём как напечатать красивые таблицы:
• С одинаковой шириной колонок;
• Сразной шириной колонок;
• С шапкой из двух строк.
А также создадим функции:
• С параметром максимальной ширины таблицы;
• Для записи таблицы в текстовый файл.
🧷 https://tproger.ru/articles/kak-napechatat-tablicu-s-pomoshhju-f-string/
#Статья
В этой статье мы разберём как напечатать красивые таблицы:
• С одинаковой шириной колонок;
• Сразной шириной колонок;
• С шапкой из двух строк.
А также создадим функции:
• С параметром максимальной ширины таблицы;
• Для записи таблицы в текстовый файл.
🧷 https://tproger.ru/articles/kak-napechatat-tablicu-s-pomoshhju-f-string/
#Статья
📌 Celery
Celery — программа, которая отслеживает и выполняет задачи. Её смысл в том, что она может выполнять несколько задача параллельно и не блокирует поставщиков задач.
У неё есть набор обработчиков, которые и занимаются выполнением задач. Хранятся задачи внутри базы данных, зачастую это Redis или RabbitMQ.
Celery хорошо себя чувствует и при масштабировании, ведь обработчиков можно запустить на нескольких серверах.
#урок
Celery — программа, которая отслеживает и выполняет задачи. Её смысл в том, что она может выполнять несколько задача параллельно и не блокирует поставщиков задач.
У неё есть набор обработчиков, которые и занимаются выполнением задач. Хранятся задачи внутри базы данных, зачастую это Redis или RabbitMQ.
Celery хорошо себя чувствует и при масштабировании, ведь обработчиков можно запустить на нескольких серверах.
#урок
Telegram Bot PYTHON - Создаем админку с интерфейсом для управления ботами (PyQt5 + PyTelegramBotApi)
• В данном видео мы реализуем админ-панель для управления ботами в телеграме. Админка содержит в себе возможность постить контент на множество каналов используя токен 1-го бота.
• Весь проект реализован на PyQt5 и PyTelegramBotApi, что позволяет использовать графический интерфейс для нашей программы и взаимодействовать с API телеграма.
🧷 https://youtu.be/C4FWuX4ETXw
#Видео
• В данном видео мы реализуем админ-панель для управления ботами в телеграме. Админка содержит в себе возможность постить контент на множество каналов используя токен 1-го бота.
• Весь проект реализован на PyQt5 и PyTelegramBotApi, что позволяет использовать графический интерфейс для нашей программы и взаимодействовать с API телеграма.
🧷 https://youtu.be/C4FWuX4ETXw
#Видео
Распознавание речи python с графическим интерфейсом (PYQT5)
• В данном видео реализована программа для распознавания речи python, которая позволяет используя различные методы переводить голос в текстовое содержимое, внутри программы вы можете использовать как и методы гугла и яндекса, так и переключиться на оффлайн режим.
🧷 https://youtu.be/NRPVObQLi3M
#Видео
• В данном видео реализована программа для распознавания речи python, которая позволяет используя различные методы переводить голос в текстовое содержимое, внутри программы вы можете использовать как и методы гугла и яндекса, так и переключиться на оффлайн режим.
🧷 https://youtu.be/NRPVObQLi3M
#Видео
SQLITE Python - Создаем форму для регистрации на PYQT5 и SQLITE3
• В данном видео мы создадим окно для авторизации и регистрации в нашем приложении используя sqlite и pyqt5 python. Мы реализуем простое окно, которое будет запрашивать данные пользователя, и в зависимости от его ввода, взаимодействовать с базой данных sqlite3.
• Мы рассмотрим создание таблицы в нашей базе, используя программу sqlite browser и нарисуем интерфейс python программы используя qt designer. Также узнаем каким образом можно добавлять новые значения в нашу базу и находить уже записанные ранее значения для взаимодействия с ними.
🧷 https://youtu.be/5Mm7Fiq3k8c
#Видео
• В данном видео мы создадим окно для авторизации и регистрации в нашем приложении используя sqlite и pyqt5 python. Мы реализуем простое окно, которое будет запрашивать данные пользователя, и в зависимости от его ввода, взаимодействовать с базой данных sqlite3.
• Мы рассмотрим создание таблицы в нашей базе, используя программу sqlite browser и нарисуем интерфейс python программы используя qt designer. Также узнаем каким образом можно добавлять новые значения в нашу базу и находить уже записанные ранее значения для взаимодействия с ними.
🧷 https://youtu.be/5Mm7Fiq3k8c
#Видео
📌 Хранение данных пользователя: FSM
Хранить данные о пользователи мы можем или в базе данных (Redis, Mongo) или в памяти. Для тестовой системы или простого бота вполне хватит второго варианта, а вот в проде лучше использовать БД.
Зачем? Таким образом, если у вас будет несколько серверов с запущенным ботом, данные будут всегда актуальны. К тому же, при обновлении бота, состояния пользователей не сбросятся.
#урок #aiogram
Хранить данные о пользователи мы можем или в базе данных (Redis, Mongo) или в памяти. Для тестовой системы или простого бота вполне хватит второго варианта, а вот в проде лучше использовать БД.
Зачем? Таким образом, если у вас будет несколько серверов с запущенным ботом, данные будут всегда актуальны. К тому же, при обновлении бота, состояния пользователей не сбросятся.
#урок #aiogram
Работа с файлами Python в оперативной памяти. IO Python - Собираем файлы в ОЗУ
• В данном видео мы рассмотрим модуль io, который позволяет использовать буфер для работы с файлами в озу. Мы покажем 2 примера, в которых будем использовать сначала работу с файлами используя для этого файловую систему с сохранением на диск, после чего на этом же примере мы покажем то, как можно производить те же действия используя только ОЗУ и никак не взаимодействуя при этом с жестким диском.
• Такой подход обеспечивает более высокую скорость выполнения и у вас нет необходимости сохранять что либо на диске, так как все действия можно произвести в оперативной памяти, к примеру обработать файл, передать его на сервер, в бота телеграмм и т.д.
🧷 https://youtu.be/ZFyM0JgLqjg
#Видео
• В данном видео мы рассмотрим модуль io, который позволяет использовать буфер для работы с файлами в озу. Мы покажем 2 примера, в которых будем использовать сначала работу с файлами используя для этого файловую систему с сохранением на диск, после чего на этом же примере мы покажем то, как можно производить те же действия используя только ОЗУ и никак не взаимодействуя при этом с жестким диском.
• Такой подход обеспечивает более высокую скорость выполнения и у вас нет необходимости сохранять что либо на диске, так как все действия можно произвести в оперативной памяти, к примеру обработать файл, передать его на сервер, в бота телеграмм и т.д.
🧷 https://youtu.be/ZFyM0JgLqjg
#Видео
📌 Finite State Machine
Конечный автомат — модель, которая говорит что у пользователя может быть определённое состояние, от которого зависит код. Между состояниями можно переключатся.
Если брать игры, то там у игрока есть состояния: бег, прыжок, приседание, ходьба. Если игрок сидит, то проигрывается соответствующая анимация, ходьба замедляется.
Мы же, в ботах, можем использовать состояния для считывания данных пользователя, управления большими меню, ведения нормальных диалогов.
Вообще, чтобы с этим всем не возиться, лучше использовать aiogram-dialog.
#урок #aiogram
Конечный автомат — модель, которая говорит что у пользователя может быть определённое состояние, от которого зависит код. Между состояниями можно переключатся.
Если брать игры, то там у игрока есть состояния: бег, прыжок, приседание, ходьба. Если игрок сидит, то проигрывается соответствующая анимация, ходьба замедляется.
Мы же, в ботах, можем использовать состояния для считывания данных пользователя, управления большими меню, ведения нормальных диалогов.
Вообще, чтобы с этим всем не возиться, лучше использовать aiogram-dialog.
#урок #aiogram