Python на примерах
1.39K subscribers
411 photos
6 videos
145 links
Короткие уроки Python на примерах
Download Telegram
PrettyTable — удобный модуль для создания таблиц и вывода их в терминал или текстовые файлы.

Возможности:
-Настройка ширины столбцов, выравнивание текста и границы таблицы.

-Сортировка данных и выбор столбцов/строк для вывода.

-Чтение данных из CSV, HTML или базы данных.

-Вывод в ASCII или HTML форматах.
👍6
SQLAlchemy — как работать с базами данных без написания SQL запросов! 💾🔧

SQLAlchemy (https://pypi.org/project/SQLAlchemy/) — это мощный ORM (Object Relational Mapper) для Python, который позволяет взаимодействовать с базами данных, не пишя SQL запросы вручную.

Что делает SQLAlchemy уникальным?

* ORM: преобразует ваши классы Python в таблицы базы данных.
* Миграции: автоматически обновляет структуру базы данных в зависимости от изменений в модели.
* Сложные запросы: с помощью выражений SQLAlchemy можно легко составлять сложные SQL-запросы, не выходя за пределы Python-кода.

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

1. Создаем модель — класс, который будет отражать таблицу в базе данных.
2. Работаем с данными — создаем, читаем, обновляем и удаляем записи через объекты Python.

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

# Настроим базу данных
Base = declarative_base()
engine = create_engine('sqlite:///example.db')
Session = sessionmaker(bind=engine)
session = Session()

# Модель для таблицы
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
age = Column(Integer)

# Создадим таблицу
Base.metadata.create_all(engine)

# Добавим нового пользователя
new_user = User(name='Alice', age=28)
session.add(new_user)
session.commit()

# Запросим данные
user = session.query(User).filter_by(name='Alice').first()
print(user.name, user.age)


🔎 Почему стоит использовать SQLAlchemy?

* Не нужно писать SQL вручную.
* Легко работать с большими проектами.
* Отличная документация и активное сообщество.

Установка:
⚙️ pip install SQLAlchemy
👍3
PyAutoGUI — Автоматизация действий на экране! 🤖

PyAutoGUI (https://pypi.org/project/PyAutoGUI/) — библиотека для автоматизации работы с мышью и клавиатурой. Если нужно автоматизировать интерфейсные действия, такие как клик, набор текста или движение мыши, то PyAutoGUI — ваш лучший друг

🔥 Почему стоит использовать PyAutoGUI?

* Автоматизация: программное управление мышью и клавиатурой, что открывает возможности для автоматизации различных задач.
* Детекция: с помощью PyAutoGUI можно делать скриншоты и находить элементы на экране по изображению.
* Кросс-платформенность: работает на Windows, macOS и Linux.

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

1. Двигаем мышь: легко перемещаем курсор в нужную точку.
2. Кликаем: автоматически выполняем клики в нужном месте.
3. Вводим текст: программно набираем текст на клавиатуре.

Пример:

import pyautogui

# Перемещение мыши
pyautogui.moveTo(100, 200)

# Клик
pyautogui.click()

# Набор текста
pyautogui.typewrite("Привет, мир!")


🔍 Полезно для:

* Автоматизации рутинных задач (например, заполняя формы).
* Тестирования UI (можно автоматически взаимодействовать с интерфейсами).
* Создания ботов для выполнения простых действий.

Установка:
⚙️ pip install pyautogui
👍2
📦 Преобразуем данные в JSON в Python

Нужно передать словарь через API или сохранить структуру в файл? Не изобретай велосипед — используй json.dumps().

Этот метод из модуля json превращает Python-объекты в JSON-строки за секунду.

🛠 Итог:
Для сериализации — json.dumps(). Просто, понятно, надёжно.
📂 Как получить список файлов в директории

Хочешь обработать все файлы в папке? Вместо ручного перечисления — автоматизируй!

Скомбинируй os.listdir() и os.path.isfile(), чтобы получить только файлы, без папок и мусора.

⚙️ Итог:
os.listdir() + os.path.isfile() — быстрый способ собрать все файлы в директории для анализа или загрузки.
❤2👍2
📏 Как узнать размер файла в Python

Нужно проверить «вес» файла перед загрузкой или для логов? Используй os.path.getsize() — и получай размер в байтах за одну строчку.

📊 Итог:
os.path.getsize(path) — простой способ узнать размер файла. Полезно для валидации, отчётов и контроля ограничений.
ReadWriteMemory — это топовая библиотека, позволяющая легко читать/записывать в память любого процесса.

С её помощью можно, например, сделать читы для игры.
А если подрубить такие библиотеки, как imGui, то можно вывести и оверлей чита.
Либо сделать простой трейнер.

Ставится командой pip install ReadWriteMemory
Документация и примеры кода здесь.
Быстро создаём SQLite-базу данных

Когда нужно протестировать идею или сделать лёгкое приложение, новички часто тратят время на настройку полноценной СУБД. Но в Python есть встроенная SQLite — это база данных, которая хранится в одном файле и не требует установки.

С помощью модуля sqlite3 можно создать базу, таблицу и вставить данные всего в несколько строк.
👍2
🧩 partial — фиксируем аргументы у функции

Хочешь заранее задать часть аргументов функции? Используй functools.partial.

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

На примере(см. выше) функция partial используется для создания новой функции с фиксированными значениями аргументов. Она принимает функцию и задает некоторые аргументы заранее, которые станут постоянными для создаваемой функции.
👍2
📌 Добавляем типы в Python с аннотациями

Python — динамический, но никто не мешает сделать код понятнее с помощью аннотаций типов.

Они не меняют поведение программы, но помогают IDE и вам самим — меньше багов, больше ясности.

🔍 Итог:
Типизация в Python — это документация прямо в коде. Используйте подсказки типов, чтобы ловить ошибки ещё до запуска.
👍2
📊 rich — красиво выводим в консоль

Обычный print() скучный? Библиотека rich превращает консоль в шоу: цветной текст, таблицы, прогресс-бары и даже Markdown.

from rich import print

print("[bold green]Hello, [underline]Python[/] world![/]")


rich — отличный инструмент для визуализации логов, отладки и CLI-интерфейсов. Красиво и понятно.
📦 python-dotenv — храним переменные окружения в .env

Устал вручную прописывать переменные окружения? python-dotenv загружает их из .env файла автоматически.

from dotenv import load_dotenv
import os

load_dotenv()
api_key = os.getenv("API_KEY")


🔐 Итог:
python-dotenv — удобно и безопасно: храните секреты в .env, а не в коде.
👍2
🧹 Удаляем лишнее из списка: list comprehensions + условие

Нужно быстро отфильтровать список? Вместо громоздких циклов используй list comprehension с условием.

data = [1, 2, None, 4, None, 5]
clean = [x for x in data if x is not None]


🧼 Итог:
List comprehension — лаконичный способ чистить и преобразовывать данные.
❤1👎1
Как узнать размер папки на Python?

Нужно пройтись по всем вложенным файлам и просуммировать их размер. Это и будет общий вес каталога.

используйте os.walk() или os.path.getsize() для обхода и подсчёта.
🕒 Измеряем время выполнения кода

Хочешь узнать, сколько выполняется блок кода? Используй time.time() — просто и наглядно.

import time

start = time.time()
# ваш код
time.sleep(1)
end = time.time()

print(f"Время выполнения: {end - start:.2f} сек.")


⏱ Итог:
time.time() — быстрый способ измерить производительность без сторонних библиотек.
👍3
string.rsplit() — разбивает строку справа налево по указанному разделителю и возвращает список. Можно задать, сколько именно раз выполнять разбиение (по умолчанию — без ограничения).
🧪 Проверка типов через isinstance()

Иногда важно убедиться, что переменная — нужного типа. isinstance() делает это просто и читаемо.

value = 42
if isinstance(value, int):
print("Это целое число!")


🔍 Итог:
isinstance() — безопасная проверка типа без сюрпризов.
str.expandtabs() заменяет \t в строке на пробелы. Можно указать, сколько пробелов должен вставлять один таб.
🧵 Запускаем параллельный код с 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