byteofpython | Unsorted

Telegram-канал byteofpython - 🐍 Укус питона 🐍

2619

🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки. 👽 Админ - @it_dashka 🔊 Купить рекламу: https://telega.in/c/byteofpython 👉 Чат: @abyteofpython 👉 Поделиться с друзьями: @byteofpython

Subscribe to a channel

🐍 Укус питона 🐍

Message_effect_id - это идентификатор, используемый в Telegram Bot API для определения конкретного визуального эффекта, который можно применить к сообщению.

➡️Основные характеристики message_effect_id:

Уникальность: Каждый эффект имеет свой уникальный числовой идентификатор.Формат: Идентификаторы представлены в виде строк, содержащих длинные числовые значения.Связь с эмодзи: Каждый message_effect_id соответствует определенному эмодзи, которое визуально представляет эффект.

➡️Примеры message_effect_id:

{
'🔥': "5104841245755180586",
'👍': "5107584321108051014",
'👎': "5104858069142078462",
'❤️': "5044134455711629726",
'🎉': "5046509860389126442",
'💩': "5046589136895476101"
}


➡️Использование в Telegram Bot API:

Применение эффектов: Боты могут использовать эти идентификаторы для добавления анимированных реакций к сообщениям.Интерактивность: Позволяет создавать более динамичные и интерактивные взаимодействия в чатах

Читать полностью…

🐍 Укус питона 🐍

✈️Метод subclasshook используется для определения, является ли один класс подклассом другого. Он вызывается при проверке isinstance() и issubclass() для определения отношения наследования между классами.

⬆️Этот метод позволяет настроить поведение этих функций для пользовательских классов.

➡️Пример:

class A:
def init(self, value):
self.value = value

class B:
def init(self, value):
self.value = value

def subclasshook(cls, subclass):
return (hasattr(subclass, 'value') and
callable(subclass.value) and
subclacc.value.name == 'print_value')

class C:
def init(self, value):
self.value = value

def print_value(self):
print(self.value)

a = A(5)
b = B(10)
c = C(15)

# Проверка
print(issubclass(C, B)) # True
print(issubclass(A, B)) # False


⬆️В примере метод subclasshook класса B проверяет, есть ли у подкласса метод print_value. Если да, то возвращает True, что позволяет считать его подклассом B.

Читать полностью…

🐍 Укус питона 🐍

🖥 В чем разница между итератором и генератором?

В
Python и итераторы, и генераторы позволяют перебирать элементы коллекций, но работают немного по-разному.

🔘Итераторы — это объекты, которые реализуют методы iter() и next(). Метод iter() возвращает сам итератор, а next() — следующий элемент коллекции. Если элементы заканчиваются, next() должен вызвать исключение StopIteration. Итераторы позволяют явно перебирать элементы коллекции, не требуя, чтобы все элементы были доступны в памяти одновременно.

🔘Генераторы — это специальный способ реализации итераторов. Они создаются при помощи функций с ключевым словом yield. Главное отличие генератора заключается в том, что значения генерируются по требованию. Каждый раз, когда генератор достигает yield, он возвращает значение и «замирает», сохраняя своё состояние до следующего вызова. Это позволяет использовать меньше памяти при итерации по длинным последовательностям.

Читать полностью…

🐍 Укус питона 🐍

➡️GeoPy — это популярная библиотека в языке программирования Python, которая используется для выполнения различных геокодинговых операций. Она позволяет разработчикам легко преобразовывать адреса в географические координаты (широта и долгота) и обратно

➡️Геокодирование и обратное геокодирование

Одна из основных функций библиотеки GeoPy — это геокодирование. Геокодирование позволяет преобразовывать текстовые адреса в географические координаты. Это может быть полезно для создания карт, отслеживания местоположения или анализа данных, связанных с конкретными локациями.

➡️Расчет расстояний и маршрутов

Еще одна полезная функция GeoPy — это возможность расчета расстояний между двумя точками на карте. Это может быть полезно для множества приложений, включая логистику, планирование маршрутов и анализ местоположения.

Читать полностью…

🐍 Укус питона 🐍

Погрузитесь в мир Python с нашим бесплатным курсом!

🎓 Включено 45 уроков, 56 упражнений в тренажере и 163 проверочных теста. Узнаете, как создавать программы, работать с условиями и функциями.

Что вы освоите:
— Составление программ из нескольких модулей.
— Анализ ошибок в коде с использованием отладочной печати.

📚 Курс охватывает основы Python: синтаксис, условия, циклы, типы данных и библиотеки. Практика на каждом шаге поможет вам уверенно использовать язык.

Начните свое обучение с бесплатного базового курса Python и вы сможете создавать несложные программы, а так же анализировать ошибки в коде!

Читать полностью…

🐍 Укус питона 🐍

🖥 В чем разница между итератором и генератором?

В
Python и итераторы, и генераторы позволяют перебирать элементы коллекций, но работают немного по-разному.

🔘Итераторы — это объекты, которые реализуют методы iter() и next(). Метод iter() возвращает сам итератор, а next() — следующий элемент коллекции. Если элементы заканчиваются, next() должен вызвать исключение StopIteration. Итераторы позволяют явно перебирать элементы коллекции, не требуя, чтобы все элементы были доступны в памяти одновременно.

🔘Генераторы — это специальный способ реализации итераторов. Они создаются при помощи функций с ключевым словом yield. Главное отличие генератора заключается в том, что значения генерируются по требованию. Каждый раз, когда генератор достигает yield, он возвращает значение и «замирает», сохраняя своё состояние до следующего вызова. Это позволяет использовать меньше памяти при итерации по длинным последовательностям.

Читать полностью…

🐍 Укус питона 🐍

🔎LoginManager - это класс во Flask, который обрабатывает аутентификацию пользователей. Он предоставляет возможность работы с аутентификацией: проверка правильности введенных учетных данных, установка и удаление сеансов пользователя, проверка доступа к защищенным страницам.

➡️Использование LoginManager

Сначала необходимо создать экземпляр LoginManager и привязать его к приложению Flask. Затем можно определить функцию загрузки пользователя с помощью декоратора @login_manager.user_loader. Эта функция должна принимать идентификатор пользователя в качестве параметра и возвращать объект пользователя.

После настройки LoginManager можно использовать его для защиты определенных страниц и контролировать доступ к ним только для аутентифицированных пользователей. Для этого можно использовать декоратор @login_required, который применяется к функции представления и автоматически проверяет статус аутентификации пользователя перед выполнением функции.

Читать полностью…

🐍 Укус питона 🐍

🕔Один из самых простых способов измерения времени выполнения кода в Python – использование модуля time. Этот модуль предоставляет функцию time(), которая возвращает текущее время в секундах с момента начала эпохи. Вы можете использовать эту функцию до и после куска кода, скорость выполнения которого вы хотите измерить, а затем вычесть одно значение из другого, чтобы получить общее время выполнения.

➡️Пример использования модуля time:

import time

start_time = time.time()

# Код, скорость выполнения которого вы хотите измерить
for i in range(0, 10000):
pass

end_time = time.time()

execution_time = end_time - start_time
print(f"Время выполнения: {execution_time} секунд")

Читать полностью…

🐍 Укус питона 🐍

Библиотека PIL (Python Imaging Library) является одной из самых популярных библиотек для обработки изображений.

➡️Создание и редактирование изображений

Одной из главных возможностей библиотеки PIL является возможность создания и редактирования изображений. С ее помощью можно создавать новые изображения с определенными размерами и цветовыми схемами, а также редактировать существующие изображения. Например, можно добавлять текст, рисовать графические примитивы, наносить различные эффекты и многое другое.

➡️Обработка изображений в пакетном режиме

Библиотека PIL также предоставляет возможность обработки изображений в пакетном режиме. Это означает, что можно применять определенные операции к нескольким изображениям одновременно. Например, можно изменить размер и применить фильтр ко множеству изображений, что сэкономит время и упростит процесс обработки большого количества изображений.

Читать полностью…

🐍 Укус питона 🐍

Что такое логирование?

Логирование – это процесс записи событий в системе. Эти события могут включать в себя всё: от информации о том, что программа успешно завершила свою работу, до деталей о возникших ошибках. Логи могут быть сохранены в различных форматах и на различных носителях, включая файлы, базы данных или даже удаленные серверы.

➡️Преимущества логирования

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

➡️Как использовать логирование?

- Можно использовать встроенные средства ОС или специализированные инструменты для логирования.

- внедрять функции логирования непосредственно в свои приложения.

В любом случае, важно помнить о необходимости разделять логи по уровням важности и обеспечивать их надлежащее хранение и архивацию.

Читать полностью…

🐍 Укус питона 🐍

✈️Метод subclasshook используется для определения, является ли один класс подклассом другого. Он вызывается при проверке isinstance() и issubclass() для определения отношения наследования между классами.

⬆️Этот метод позволяет настроить поведение этих функций для пользовательских классов.

➡️Пример:

class A:
def init(self, value):
self.value = value

class B:
def init(self, value):
self.value = value

def subclasshook(cls, subclass):
return (hasattr(subclass, 'value') and
callable(subclass.value) and
subclacc.value.name == 'print_value')

class C:
def init(self, value):
self.value = value

def print_value(self):
print(self.value)

a = A(5)
b = B(10)
c = C(15)

# Проверка
print(issubclass(C, B)) # True
print(issubclass(A, B)) # False


⬆️В примере метод subclasshook класса B проверяет, есть ли у подкласса метод print_value. Если да, то возвращает True, что позволяет считать его подклассом B.

Читать полностью…

🐍 Укус питона 🐍

✈️Python имеет встроенный модуль zipfile, который предоставляет функционал для работы с архивами ZIP. Давайте создадим простой пример, чтобы продемонстрировать его возможности:

import zipfile

# Создаем новый ZIP файл
with zipfile.ZipFile('новый_архив.zip', 'w') as new_zip:
# Добавляем файлы в архив
new_zip.write('file1.txt')
new_zip.write('file2.txt')
# Можно добавить еще файлы по мере необходимости

⬆️Этот небольшой код создает новый ZIP архив под именем новый_архив.zip и помещает в него файлы file1.txt и file2.txt.

➡️Модуль zipfile обладает широкими возможностями, позволяя извлекать файлы, читать содержимое архива, добавлять и удалять файлы, а также многое другое. Это удобный инструмент, который позволяет манипулировать архивами непосредственно из кода Python.Если вам интересно узнать больше о модуле zipfile или экспериментировать с архивами в Python, рекомендую обратиться к официальной документации Python.

Читать полностью…

🐍 Укус питона 🐍

➡️Что такое importlib?

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

➡️Вот простой пример использования importlib:

import importlib

# Динамический импорт модуля
math = importlib.import_module('math')

# Использование импортированного модуля
print(math.pi) # Выводит 3.141592653589793

# Перезагрузка модуля
importlib.reload(math)


➡️С importlib вы можете:
• Динамически импортировать модули
• Перезагружать модули во время выполнения
• Создавать пользовательские импортеры
• Работать с пространствами имен пакетов

🔎Эта библиотека особенно полезна при разработке плагинов, создании расширяемых приложений или отладке кода.

Читать полностью…

🐍 Укус питона 🐍

➡️Использование библиотеки Selenium

Первый шаг в создании автообновления страницы - использование библиотеки Selenium. Selenium - это набор инструментов для автоматизации веб-браузеров. Он позволяет Python взаимодействовать с браузером, как если бы это делал человек. С помощью Selenium мы можем открыть веб-страницу и обновить ее.

➡️Пример кода:

from selenium import webdriver

driver = webdriver.Firefox() # или любой другой браузер
driver.get('<http://www.example.com>')



➡️Использование метода refresh

Второй шаг - это использование метода refresh в Selenium. Этот метод позволяет обновить текущую страницу. В комбинации с библиотекой time в Python, мы можем настроить скрипт так, чтобы он автоматически обновлял страницу через определенные интервалы времени.

➡️Пример кода:

import time

while True:
driver.refresh() # обновляем страницу
time.sleep(10) # ждем 10 секунд

Читать полностью…

🐍 Укус питона 🐍

🔥Pyrogram (в простонародье "Пирог") это мощная библиотека для создания так называемых User Ботов для телеграмма.

🤖ЮзерБоты - это скрипты которые работают от лица личного аккаунта и могут выполнять все тоже что и человек.

➡️Например, можно запрограммировать автоответчик, который будет автоматически отвечать на определенные сообщения.

➡️Но в основном ЮзерБоты используют как дополнения к телеграму, например, встроенный калькулятор. Вы скорее всего уже видели их. Кто-то пишет комманду, скажем, .calc 2+2, а скрипт все считает и изменяя сообщение, выводит ответ.

Читать полностью…

🐍 Укус питона 🐍

✈️Модуль timeit в Python используется для измерения времени выполнения вашего кода. У него есть как интерфейс командной строки, так и вызываемый интерфейс. Модуль выполнит оператор определенное количество раз (по умолчанию - один миллион) и затем вернет время, затраченное на выполнение. Вот простой пример:

import timeit
print(timeit.timeit('"-".join(str(n) for n in range(100))', number=10000))


⬆️Этот код выполнит оператор "-".join(str(n) for n in range(100)) 10 000 раз и выведет затраченное на это время.

➡️Использование Timeit с функциями

Вы также можете использовать модуль timeit для измерения времени выполнения функций. Вот пример:

import timeit
def my_function():
return "-".join(str(n) for n in range(100))
print(timeit.timeit(my_function, number=10000))


⬆️В этом примере мы сначала определяем функцию с именем my_function. Затем мы измеряем время выполнения этой функции 10 000 раз и выводим результат

Читать полностью…

🐍 Укус питона 🐍

🎮Pyxel — это библиотека для создания ретро-игр на языке программирования Python. Она идеально подходит для разработчиков, которые хотят погрузиться в мир 8-битных игр, создавая собственные проекты с минимальными усилиями.

Почему Pyxel

➡️Простота использования


Одним из главных преимуществ Pyxel является её простота использования. Она предоставляет интуитивно понятный интерфейс и минимальный набор функций, необходимых для создания игр. Это позволяет сосредоточиться на творческом процессе, не отвлекаясь на сложные технические детали.

➡️Встроенные инструменты


Pyxel поставляется с набором встроенных инструментов, которые облегчают разработку игр. Среди них: редактор спрайтов, редактор звуков и редактор карт.

➡️Кроссплатформенность

Ещё одно важное преимущество Pyxel — это её кроссплатформенность. Библиотека поддерживает Windows, macOS и Linux, что позволяет разрабатывать игры на любой из этих платформ.

Читать полностью…

🐍 Укус питона 🐍

✈️itertools — Это удивительный инструмент, который помогает работать с итерациями (повторениями) в Python более эффективно.

➡️Основные функции itertools:

1. count(start, step): Генерирует бесконечную арифметическую прогрессию, начиная с start, с шагом step.

2. cycle(iterable): Бесконечно повторяет элементы из iterable.

3. chain(*iterables): Объединяет несколько итерируемых объектов в один последовательный поток.

4. zip_longest(*iterables, fillvalue=None):
Объединяет элементы из разных итерируемых объектов, даже если их длины различаются, то недостающее количество елментом заполнится заполнителем fillvalue.

➡️Пример использования:

import itertools

# Создаем бесконечную последовательность с шагом 2
counter = itertools.count(start=10, step=2)
for _ in range(5):
print(next(counter)) # Выведет числа: 10, 12, 14, 16, 18

# Объединяем несколько списков в один последовательный поток
letters = ['a', 'b', 'c']
numbers = [1, 2, 3]
combined = itertools.chain(letters, numbers)
print(list(combined)) # Выведет: ['a', 'b', 'c', 1, 2, 3]

Читать полностью…

🐍 Укус питона 🐍

Что такое Meta в классах Django?

Django использует метаклассы. А метаклассы — это классы, которые конструируют другие классы. Соответственно, когда Django конструирует наш класс, он делает это с помощью своего метакласса. Внутренний класс с названием Meta позволяет задать этому конструктору необходимые нам параметры.

🪅Например, мы можем перезаписать имя таблицы, используя db_table в классе Meta. А ещё изменить порядок полей нашей модели.

from django.db import models

class Product(models.Model):
name = models.CharField(max_length=100)
price = models.DecimalField(max_digits=10, decimal_places=2)
created_at = models.DateTimeField(auto_now_add=True)

class Meta:
db_table = 'product_table'
ordering = ['-created_at']

Читать полностью…

🐍 Укус питона 🐍

✈️В современном мире разработки программного обеспечения все больше и больше акцент делается на создании API (Application Programming Interface) для обмена данными между различными приложениями. Когда дело доходит до тестирования и отладки этих API, инструменты, такие как POSTMAN, становятся незаменимыми.

➡️Основные возможности POSTMAN

POSTMAN - это инструмент для тестирования и отладки API, который предоставляет разработчикам простой и удобный способ отправки HTTP-запросов и получения ответов. Он имеет интуитивно понятный пользовательский интерфейс, который позволяет легко создавать и отправлять запросы различных типов, таких как GET, POST, PUT и DELETE.

➡️POSTMAN также обладает возможностью автоматизации тестирования API. С помощью коллекций запросов и сценариев, вы можете создавать наборы тестовых сценариев и запускать их в автоматическом режиме. Это особенно полезно при разработке и поддержке сложных API, где необходимо проверить множество различных запросов и ответов.

Читать полностью…

🐍 Укус питона 🐍

➡️Описание функции help

Функция help в Python используется для получения справочной информации о встроенных функциях, методах, модулях, классах и объектах Python. Эта функция является очень полезным инструментом для изучения новых методов и библиотек, а также для получения помощи в решении проблем.

Чтобы использовать функцию help, просто вызовите ее и передайте объект, для которого вы хотите получить справочную информацию. Например, если вы хотите получить справочную информацию о функции print, вы можете вызвать функцию help следующим образом:

help(print)


Это приведет к выводу документации о функции print в вашем интерпретаторе Python.

Читать полностью…

🐍 Укус питона 🐍

💩 Какова разница между методами getattr и getattribute?

Оба этих метода являются магическими.

🔘getattr


class Missing:
attr = 42

def getattr(self, name):
print(f"In getattr, asked for {name}")
return 73

m = Missing()
print(m.attr) # 42
print(m.xyz) # In getattr, asked for xyz; 73

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

🔘getattribute

class Always:
attr = 42

def getattribute(self, name):
print(f"In getattribute, asked for {name}")
return 73

a = Always()
print(a.attr) # In getattribute, asked for attr; 73
print(a.xyz) # In getattribute, asked for xyz; 73

Здесь же можно увидеть, что метод используется для обработки запросов всех атрибутов, как существующих (attr), так и несуществующих (xyz).

✅ Таким образом, getattribute — это метод, который управляет всеми запросами атрибутов, тогда как getattr вызывается, когда getattribute не находит атрибут.

Читать полностью…

🐍 Укус питона 🐍

🔎Объекты - это экземпляры классов, и классы являются шаблонами для создания объектов. Каждый объект имеет свои собственные атрибуты (переменные, данные) и методы (функции, действия), которые определяют его поведение и взаимодействие с другими объектами.

Например, если у нас есть класс "Автомобиль", мы можем создать несколько объектов этого класса, таких как "Машина1" и "Машина2". У каждого объекта будет свой набор атрибутов, таких как "марка", "модель" и методов, таких как "завести двигатель" или "передвинуться вперед".

➡️Преимущества использования объектов в Python

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

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

Читать полностью…

🐍 Укус питона 🐍

➡️Основы Unstructured

Библиотека предоставляет удобные методы для работы с различными типами данных. Например, для чтения текста из файла можно использовать следующий код:

from unstructured import Text

text_data = Text.from_file('example.txt')
print(text_data.content)


⬆️Эти простые команды позволяют легко импортировать и работать с текстовыми данными.

➡️Обработка Текстовых Данных

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

from unstructured import Text

text_data = Text('Это пример текста для токенизации.')
tokens = text_data.tokenize()
print(tokens)


⬆️Этот код разобьёт текст на отдельные слова, что может быть полезно для дальнейшего анализа и обработки данных.

Читать полностью…

🐍 Укус питона 🐍

💩 Какова разница между методами getattr и getattribute?

Оба этих метода являются магическими.

🔘getattr


class Missing:
attr = 42

def getattr(self, name):
print(f"In getattr, asked for {name}")
return 73

m = Missing()
print(m.attr) # 42
print(m.xyz) # In getattr, asked for xyz; 73

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

🔘getattribute

class Always:
attr = 42

def getattribute(self, name):
print(f"In getattribute, asked for {name}")
return 73

a = Always()
print(a.attr) # In getattribute, asked for attr; 73
print(a.xyz) # In getattribute, asked for xyz; 73

Здесь же можно увидеть, что метод используется для обработки запросов всех атрибутов, как существующих (attr), так и несуществующих (xyz).

✅ Таким образом, getattribute — это метод, который управляет всеми запросами атрибутов, тогда как getattr вызывается, когда getattribute не находит атрибут.

Читать полностью…

🐍 Укус питона 🐍

Прокачай свои скилы с Алексеем Рыбаком! 🚀

Надоели скучные задачи по программированию? 💻
Время перейти на новый уровень!

🎖Приглашаем бекендеров и инженеров инфраструктуры на уникальный трехмесячный курс по системному дизайну и архитектуре высоконагруженных систем от Алексея Рыбака, главы разработки Bumble/Badoo с 20-летним опытом в highload проектировании.

В чем ценность этого курса?

Огненная практика с первых дней обучения на реальных кейсах и собственной инфраструктуре
Погружение «под капот» хайлоад систем, изучение паттернов и приемов масштабирования
Топовые фишки и знания по архитектуре проектов и системному дизайну больших проектов (1-100M DAU)
Живые сессии, брейнштормы, проектирование “у доски”

На выходе у вас появится опыт:

Проектирования сложных систем
Нагрузочного тестирования своей инфраструктуры (выжмете 100К запросов)
Планирования ресурсов для проектов с большим количеством пользователей
Масштабирования IT-проектов
Практический опыт работы с кластерами Redis, CockroachDB и шардированными PostgreSQL/MySQL
И многое другое!

➡️ Регистрируйся и погружайся в нескучный хайлоад

Реклама ИП Рыбак А. А. ИНН 771407709607

Читать полностью…

🐍 Укус питона 🐍

💩 Какова разница между методами getattr и getattribute?

Оба этих метода являются магическими.

🔘getattr


class Missing:
attr = 42

def getattr(self, name):
print(f"In getattr, asked for {name}")
return 73

m = Missing()
print(m.attr) # 42
print(m.xyz) # In getattr, asked for xyz; 73

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

🔘getattribute

class Always:
attr = 42

def getattribute(self, name):
print(f"In getattribute, asked for {name}")
return 73

a = Always()
print(a.attr) # In getattribute, asked for attr; 73
print(a.xyz) # In getattribute, asked for xyz; 73

Здесь же можно увидеть, что метод используется для обработки запросов всех атрибутов, как существующих (attr), так и несуществующих (xyz).

✅ Таким образом, getattribute — это метод, который управляет всеми запросами атрибутов, тогда как getattr вызывается, когда getattribute не находит атрибут.

Читать полностью…

🐍 Укус питона 🐍

Зачем нужно ключевое слово async в Python?

Ключевое слово async в Python используется для создания асинхронных функций (или корутин), которые позволяют выполнять задачи, не блокируя основной поток выполнения программы. Это особенно полезно для работы с такими операциями, как сетевые запросы, взаимодействие с базами данных или чтение/запись файлов.

Вот пример асинхронной функции:

import asyncio

async def fetch_data():
print("Fetching data...")
await asyncio.sleep(2) # симуляция длительной операции
print("Data fetched")
return "Data"

async def main():
result = await fetch_data()
print(result)

# запуск асинхронной функции
asyncio.run(main())

Как можно заметить, async идёт в паре с await, который приостанавливает выполнение fetch_data до завершения asyncio.sleep(2).

Читать полностью…

🐍 Укус питона 🐍

Interactive Radio Button Animation — перемещение точки при выборе одного из вариантов. Реализована с помощью CSS и JavaScript

Читать полностью…

🐍 Укус питона 🐍

Понимание функции Keyboard.add_hotkey

Функция keyboard.add_hotkey() в Python позволяет назначить определенную функцию на сочетание клавиш, известное как горячая клавиша. Она принимает два основных аргумента: комбинацию клавиш и функцию, которая будет выполнена при нажатии этой комбинации. Синтаксис выглядит следующим образом: keyboard.add_hotkey(hotkey, callback, args=(), suppress=False, timeout=3, trigger_on_release=False). Горячая клавиша может состоять из одной клавиши, комбинации клавиш или даже последовательности нажатий.

Примеры использования Keyboard.add_hotkey

Функция keyboard.add_hotkey() очень полезна для автоматизации задач и повышения интерактивности ваших скриптов на Python. Например, ее можно использовать для создания простого кейлоггера, автоматизации создания скриншотов или назначения пользовательских ярлыков для определенных действий в вашем приложении на Python. Важно помнить о необходимости ответственного и этичного использования этой функции, учитывая возможные злоупотребления.

Практические примеры применения Keyboard.add_hotkey

Рассмотрим пример, в котором мы хотим вывести "Привет, Мир!" при нажатии сочетания клавиш 'Ctrl + H'. Сначала необходимо импортировать модуль keyboard. Если он не установлен, вы можете установить его с помощью pip. Затем определяем нашу функцию и добавляем горячую клавишу следующим образом:

import keyboard

def hello_world():
print("Привет, Мир!")

keyboard.add_hotkey('ctrl + h', hello_world)
keyboard.wait()

Читать полностью…
Subscribe to a channel