🧵 Запускаем параллельный код с threading.Thread
Нужно выполнить задачу в фоне, не блокируя основной поток? Используй
⚙️ Итог:
Нужно выполнить задачу в фоне, не блокируя основной поток? Используй
threading.Thread.import threading
def worker():
print("Работаю в фоне!")
t = threading.Thread(target=worker)
t.start()
⚙️ Итог:
threading.Thread — простой способ запустить фоновую задачу без async/await.🔥2
Определение IP-адреса компьютера
Приведённый код использует библиотеку
Обёртка в виде блока
Приведённый код использует библиотеку
requests для отправки HTTP-запроса к сервису ipify — это API, позволяющее определить публичный IP-адрес пользователя. Код оформлен в виде функции get_public_ip, что упрощает его повторное использование в различных сценариях.Обёртка в виде блока
try-except позволяет корректно обрабатывать возможные ошибки, такие как отсутствие подключения к интернету. В случае успешного выполнения запроса функция возвращает IP-адрес. Если возникает ошибка, возвращается соответствующее сообщение.👍2
Метод intersection(): нахождение общих элементов
Метод
Это как пересечение интересов в компании друзей: только то, что нравится всем, попадает в общий список. Удобно и эффективно, особенно когда нужно быстро выделить общее из множества данных.
Метод
intersection() используется для получения нового множества, содержащего только те элементы, которые присутствуют во всех переданных множествах. Если в метод не передавать аргументов, он просто вернёт копию исходного множества.Это как пересечение интересов в компании друзей: только то, что нравится всем, попадает в общий список. Удобно и эффективно, особенно когда нужно быстро выделить общее из множества данных.
❤1👍1
Функция memoryview(): эффективная работа с байтовыми данными
С помощью
Можно сказать, что
memoryview() в Python позволяет получить доступ к внутреннему буферу данных объектов (например, байтов или массивов) без их копирования. Это делает работу с большими объёмами информации значительно быстрее и экономичнее по памяти.С помощью
memoryview() можно выполнять операции на уровне байтов, изменять части данных "на месте", а также передавать большие объекты между функциями или модулями без накладных расходов на создание копий.Можно сказать, что
memoryview() — это своего рода «окно» в данные: вы видите и работаете с содержимым напрямую, не создавая лишнего. Особенно ценится при разработке высокопроизводительных приложений и обработке бинарных потоков.transformers от Hugging Face — одна из самых популярных и мощных библиотек в мире искусственного интеллекта. Она предоставляет доступ к передовым моделям машинного обучения, таким как BERT, GPT, T5 и многим другим, которые лежат в основе современных систем обработки естественного языка.Вот простой пример использования библиотеки
transformers для генерации текста с помощью модели GPT-2:from transformers import pipeline
# Создаем пайплайн для генерации текста на основе модели GPT-2
generator = pipeline('text-generation', model='gpt2')
# Задаем начальный текст для генерации
prompt = "В мире искусственного интеллекта"
# Генерируем продолжение текста
results = generator(prompt, max_length=50, num_return_sequences=1)
# Выводим результат
print(results[0]['generated_text'])
В этом примере:
* Мы создаём объект
generator, который автоматически загружает модель GPT-2 и нужные компоненты.* Передаём начальный текст, с которого хотим продолжить.
* Запрашиваем генерацию текста длиной до 50 токенов.
* Получаем и выводим сгенерированное продолжение.
Этот код легко запускается и демонстрирует, как просто можно работать с мощными языковыми моделями, используя библиотеку
transformers.👍1
🚀
Использует многопоточность и ленивые вычисления, ускоряя аналитику в разы.
Идеален, когда
📚 Документация тут
polars.DataFrame — мощная альтернатива pandas для больших данных.Использует многопоточность и ленивые вычисления, ускоряя аналитику в разы.
Идеален, когда
pandas начинает тормозить.📚 Документация тут
👍1
Скриншот страницы сайта в одну строку кода
Если вам нужно быстро сделать скриншот веб-страницы и сохранить его в виде изображения, вы можете использовать Python и библиотеку selenium.
Как это работает:
1.
2.
3.
4.
Если вам нужно быстро сделать скриншот веб-страницы и сохранить его в виде изображения, вы можете использовать Python и библиотеку selenium.
Как это работает:
1.
selenium: Используется для автоматизации браузера.2.
webdriver-manager: Упрощает установку и управление драйверами для браузера.3.
.get(): Загружает указанную веб-страницу.4.
.save_screenshot(): Делает скриншот текущего окна браузера и сохраняет его в виде файла.👁 Управление ПК с помощью морганий — без рук, только взгляд!
Как это работает:
1.
2. Вычисляется EAR (Eye Aspect Ratio) — фиксируем моргание.
3. Моргание → действие (нажатие клавиши, скролл, смена трека).
Где пригодится:
* 📊 Презентации: листай слайды взглядом.
* 🎵 Музыка: переключай без касаний.
* ♿️ Поддержка людей с ограниченными возможностями.
Как это работает:
1.
OpenCV + MediaPipe — находят глаза.2. Вычисляется EAR (Eye Aspect Ratio) — фиксируем моргание.
3. Моргание → действие (нажатие клавиши, скролл, смена трека).
Где пригодится:
* 📊 Презентации: листай слайды взглядом.
* 🎵 Музыка: переключай без касаний.
* ♿️ Поддержка людей с ограниченными возможностями.
❤1
🖐 Управляй компьютером жестами руки!
Как это работает:
1.
2. Фиксируется позиция указательного пальца.
3. Курсор движется вместе с рукой.
Применение:
* 🎤 Бесконтактное управление презентациями.
* 🎮 Игры с виртуальной мышью.
* 🔊 Регулировка громкости жестами (сжатие — тише).
💡 Контроль без касаний — будущее уже рядом
Как это работает:
1.
MediaPipe Hands отслеживает руку.2. Фиксируется позиция указательного пальца.
3. Курсор движется вместе с рукой.
Применение:
* 🎤 Бесконтактное управление презентациями.
* 🎮 Игры с виртуальной мышью.
* 🔊 Регулировка громкости жестами (сжатие — тише).
💡 Контроль без касаний — будущее уже рядом
NumPy: Математические операции
NumPy позволяет проводить математические операции, не используя циклы. Ты можешь складывать, вычитать, умножать и делить массивы. Также можешь возводить в степень. Кроме этого, NumPy предоставляет богатый набор встроенных функций. Некоторые примеры показаны на скриншоте.
NumPy позволяет проводить математические операции, не используя циклы. Ты можешь складывать, вычитать, умножать и делить массивы. Также можешь возводить в степень. Кроме этого, NumPy предоставляет богатый набор встроенных функций. Некоторые примеры показаны на скриншоте.
👍2
⚡️ Bottle — сверхлёгкий Python-фреймворк для быстрого старта веб-приложений. Всё, что нужно — один файл
📦 Установка:
🚀 Пример базового приложения:
Открой в браузере [http://localhost:8080/hello/world](http://localhost:8080/hello/world) — и получишь: Hello World.
📚 Документация:
EN(https://bottlepy.org/docs/dev/) | RU (Habr) (https://habr.com/ru/articles/221659/)
🧠 Факт: Bottle часто используют в проектах, где важна простота и минимализм, например, для написания REST API.
bottle.py, без сторонних зависимостей.📦 Установка:
pip install bottle🚀 Пример базового приложения:
from bottle import route, run, template
@route('/hello/<name>')
def index(name):
return template('<b>Hello {{name}}</b>!', name=name)
run(host='localhost', port=8080)
Открой в браузере [http://localhost:8080/hello/world](http://localhost:8080/hello/world) — и получишь: Hello World.
📚 Документация:
EN(https://bottlepy.org/docs/dev/) | RU (Habr) (https://habr.com/ru/articles/221659/)
🧠 Факт: Bottle часто используют в проектах, где важна простота и минимализм, например, для написания REST API.
👍1
🧠 Тип ndarray в NumPy — это основной тип данных для работы с массивами.
Когда создаёшь массив через
* ndim — число измерений (или осей) массива.
* shape — форма массива: кортеж с длинами по каждой оси. Например,
* size — общее число элементов (произведение всех чисел из
* dtype — тип элементов массива (например,
* itemsize — размер одного элемента в байтах.
* data — буфер с сырыми байтами массива (используется редко, удобнее работать с индексами).
👀 Пример:
✨ Факт: благодаря
Когда создаёшь массив через
numpy.array(), получаешь объект типа ndarray. Вот полезные атрибуты (не методы!), которые стоит знать:* ndim — число измерений (или осей) массива.
* shape — форма массива: кортеж с длинами по каждой оси. Например,
(3, 4) — это 3 строки и 4 столбца.* size — общее число элементов (произведение всех чисел из
shape).* dtype — тип элементов массива (например,
int32, float64).* itemsize — размер одного элемента в байтах.
* data — буфер с сырыми байтами массива (используется редко, удобнее работать с индексами).
👀 Пример:
import numpy as np
a = np.array([[1, 2], [3, 4]])
print(a.ndim) # 2
print(a.shape) # (2, 2)
print(a.size) # 4
print(a.dtype) # int64 (зависит от системы)
print(a.itemsize) # 8 (если int64)
✨ Факт: благодаря
ndarray, NumPy работает с данными гораздо быстрее, чем обычные списки Python.Срезы в NumPy — мощный и удобный инструмент для выборки данных из массивов, очень похожий на срезы списков в Python.
📌 Основной синтаксис:
📊 Для многомерных массивов можно выбирать строки, столбцы и блоки:
*
*
*
🔒 Срезы нельзя использовать для удаления, только для выборки.
✨ Лайфхак: срезы — это представление, а не копия! Изменяя данные в срезе, вы меняете оригинальный массив.
📌 Основной синтаксис:
array[a:b] — срез от a до b (не включая b).📊 Для многомерных массивов можно выбирать строки, столбцы и блоки:
*
array[:, a] — выбрать весь столбец с индексом a*
array[a, :] — вся строка a*
array[m:n, p:q] — срез блока: строки m:n, столбцы p:q🔒 Срезы нельзя использовать для удаления, только для выборки.
✨ Лайфхак: срезы — это представление, а не копия! Изменяя данные в срезе, вы меняете оригинальный массив.
❤1