Python на примерах
1.39K subscribers
411 photos
6 videos
145 links
Короткие уроки Python на примерах
Download Telegram
🧵 Запускаем параллельный код с 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
🔄 Метод swapcase() в Python переворачивает регистр у всех букв строки: заглавные становятся строчными, строчные — заглавными.

Пример: 'Hello, World!'.swapcase() → 'hELLO, wORLD!'

⚡️ Быстрый способ «переодеть» текст!
👍1
🛡 Валидация ввода — обязательный этап при работе с пользовательскими данными. Особенно в веб-приложениях: фильтрация опасных символов защищает от SQL-инъекций и XSS-атак.

✅ Безопасность начинается с чистого ввода.
🗣 SpeechRecognition — Python-библиотека для распознавания речи, поддерживает API от Google, Microsoft, IBM и др.

💡 Можно использовать как онлайн, так и офлайн. Удобный инструмент для голосового управления и автоматизации.
🎙 Управляй YouTube голосом с помощью Python!

Скажи "Пауза", "Следующее" или "Повтори" — и скрипт всё сделает за тебя.

Как работает:

1. SpeechRecognition распознаёт твои команды.
2. pywhatkit управляет YouTube.
3. pyttsx3 отвечает голосом.

🧠 Мини-ассистент на Python — и никакого пульта
🚫 Антипаттерн недели: изменение списка во время итерации

Изменяя список в цикле, можно словить баги: элементы пропускаются или возникает IndexError.

✅ Решение: итерируйся по copy() или создавай новый список.

🧠 Безопасный обход — спокойный код.
👎1
⚡️ mmap.mmap() — работа с файлами как с участками памяти.

Позволяет читать и записывать большие файлы без полной загрузки в ОЗУ — быстро и эффективно.

💡 Идеально для обработки гигабайтных данных!
❤1👍1
🚀 polars.DataFrame — мощная альтернатива pandas для больших данных.

Использует многопоточность и ленивые вычисления, ускоряя аналитику в разы.
Идеален, когда pandas начинает тормозить.

📚 Документация тут
👍1
🔧 array.tobytes() — конвертирует массив чисел в байтовую строку.

Удобно для работы с бинарными файлами, сокетами и передачей данных по сети.
💡 Быстро, компактно, по-питоновски
👍1
Скриншот страницы сайта в одну строку кода

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

Как это работает:
1. selenium: Используется для автоматизации браузера.
2. webdriver-manager: Упрощает установку и управление драйверами для браузера.
3. .get(): Загружает указанную веб-страницу.
4. .save_screenshot(): Делает скриншот текущего окна браузера и сохраняет его в виде файла.
👁 Управление ПК с помощью морганий — без рук, только взгляд!

Как это работает:

1. OpenCV + MediaPipe — находят глаза.
2. Вычисляется EAR (Eye Aspect Ratio) — фиксируем моргание.
3. Моргание → действие (нажатие клавиши, скролл, смена трека).

Где пригодится:

* 📊 Презентации: листай слайды взглядом.
* 🎵 Музыка: переключай без касаний.
* ♿️ Поддержка людей с ограниченными возможностями.
❤1
🖐 Управляй компьютером жестами руки!

Как это работает:

1. MediaPipe Hands отслеживает руку.
2. Фиксируется позиция указательного пальца.
3. Курсор движется вместе с рукой.

Применение:

* 🎤 Бесконтактное управление презентациями.
* 🎮 Игры с виртуальной мышью.
* 🔊 Регулировка громкости жестами (сжатие — тише).

💡 Контроль без касаний — будущее уже рядом
NumPy: Математические операции

NumPy позволяет проводить математические операции, не используя циклы. Ты можешь складывать, вычитать, умножать и делить массивы. Также можешь возводить в степень. Кроме этого, NumPy предоставляет богатый набор встроенных функций. Некоторые примеры показаны на скриншоте.
👍2
⚡️ Bottle — сверхлёгкий Python-фреймворк для быстрого старта веб-приложений. Всё, что нужно — один файл 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 — это основной тип данных для работы с массивами.

Когда создаёшь массив через 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