12 промтов на каждый день Python-разработчика: FastAPI, pandas, asyncio, pytest и mypy под рукой

Промты для Python-разработчика: 12 запросов, которые ускоряют написание кода, рефакторинг и отладку

Python — один из самых популярных языков программирования, и с развитием AI-инструментов работа с ним становится быстрее и эффективнее. В этой подборке — 12 проверенных промтов для ChatGPT (и других LLM), которые помогут писать код, рефакторить legacy, отлаживать баги и писать тесты. Каждый промт — с шаблоном, примером и пояснением.

1. Генерация функции с типизацией и docstring

Задача: быстро создать функцию с аннотациями типов и документацией.

Промт:

Напиши на Python функцию, которая {описание задачи}. Используй аннотации типов (typing), добавь docstring в стиле Google. Входные данные: {список параметров}. Выход: {тип возвращаемого значения}. Учти обработку исключений: {какие ошибки обрабатывать}.

Пример:

Напиши на Python функцию, которая вычисляет среднее значение списка чисел, игнорируя None. Используй аннотации типов, docstring в стиле Google. Входные данные: list[float | None]. Выход: float. Учти обработку пустого списка (вернуть 0.0).

Результат:

from typing import List, Optional

def average_ignore_none(values: List[Optional[float]]) -> float:
    """Вычисляет среднее значение чисел, игнорируя None.

    Args:
        values: Список чисел, может содержать None.

    Returns:
        Среднее значение или 0.0, если список пуст.
    """
    filtered = [v for v in values if v is not None]
    return sum(filtered) / len(filtered) if filtered else 0.0

2. Рефакторинг legacy-кода

Задача: улучшить читаемость и современность старого кода.

Промт:

Отрефактори следующий код на Python, чтобы он соответствовал PEP 8, использовал современные возможности (f-строки, генераторы, контекстные менеджеры). Убери дублирование, улучши имена переменных. Объясни изменения.

Пример:

# Исходный код
def process(data):
    res = []
    for i in range(len(data)):
        if data[i] % 2 == 0:
            res.append(data[i] * 2)
    return res

Ответ AI:

def process(data: list[int]) -> list[int]:
    """Удваивает чётные числа в списке."""
    return [x * 2 for x in data if x % 2 == 0]

3. Поиск багов в коде

Задача: найти ошибки и потенциальные проблемы.

Промт:

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

Пример:

def get_user(users, id):
    for user in users:
        if user['id'] == id:
            return user
    return None

# Вызов
data = get_user(users, '123')
print(data['name'])

Что найдёт AI:
- Если пользователь не найден, вернётся None, а затем data['name'] вызовет TypeError.
- Сравнение id: если в users id — числа, а передана строка, может не найти.

Исправление:

def get_user(users: list[dict], user_id: int) -> dict | None:
    return next((u for u in users if u['id'] == user_id), None)

user = get_user(users, 123)
if user:
    print(user['name'])
else:
    print("Пользователь не найден")

4. Написание тестов pytest

Задача: сгенерировать тесты для функции.

Промт:

Напиши тесты на pytest для следующей функции. Покрой крайние случаи: пустой ввод, неверные типы, граничные значения. Используй фикстуры и параметризацию.

Пример: для функции average_ignore_none.

Ответ AI:

import pytest
from mymodule import average_ignore_none

@pytest.mark.parametrize("values, expected", [
    ([1.0, 2.0, None, 3.0], 2.0),
    ([], 0.0),
    ([None, None], 0.0),
    ([5], 5.0),
])
def test_average_ignore_none(values, expected):
    assert average_ignore_none(values) == expected

5. Оптимизация производительности

Задача: ускорить медленный код.

Промт:

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

Пример:

# Медленно: многократный вызов len
result = []
for i in range(len(data)):
    if data[i] > 0:
        result.append(data[i] ** 2)

Оптимизация:

result = [x ** 2 for x in data if x > 0]

6. Работа с asyncio

Задача: преобразовать синхронный код в асинхронный.

Промт:

Перепиши этот синхронный код на асинхронный с использованием asyncio. Добавь обработку исключений и таймауты. Поясни, где нужны await.

Пример:

import requests

def fetch_all(urls):
    return [requests.get(url).text for url in urls]

Асинхронная версия:

import aiohttp
import asyncio

async def fetch(session, url):
    async with session.get(url) as response:
        return await response.text()

async def fetch_all(urls):
    async with aiohttp.ClientSession() as session:
        tasks = [fetch(session, url) for url in urls]
        return await asyncio.gather(*tasks)

7. Генерация классов с dataclass

Задача: создать класс для хранения данных.

Промт:

Создай класс на Python с использованием @dataclass для {описание}. Добавь валидацию полей в __post_init__, методы сравнения и сериализации в dict.

Пример:

from dataclasses import dataclass, asdict
from datetime import date

@dataclass
class User:
    name: str
    age: int
    email: str

    def __post_init__(self):
        if self.age < 0:
            raise ValueError("Возраст не может быть отрицательным")
        if "@" not in self.email:
            raise ValueError("Некорректный email")

    def to_dict(self):
        return asdict(self)

8. Работа с pandas

Задача: выполнить сложные манипуляции с DataFrame.

Промт:

У меня есть DataFrame с колонками {список}. Напиши код на pandas для {описание задачи}: группировка, агрегация, фильтрация. Используй method chaining.

Пример:

# Задача: для каждого department посчитать среднюю зарплату и отфильтровать > 50000
result = (df.groupby('department')['salary']
          .mean()
          .reset_index()
          .query('salary > 50000'))

9. Создание API на FastAPI

Задача: быстро сгенерировать эндпоинт.

Промт:

Создай эндпоинт на FastAPI для {описание}. Используй Pydantic-модели для валидации, добавь обработку ошибок и документацию. Пример запроса и ответа.

Пример:

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
    name: str
    price: float

items = {}

@app.post("/items/")
async def create_item(item: Item):
    items[item.name] = item
    return {"status": "created", "item": item}

@app.get("/items/{name}")
async def get_item(name: str):
    if name not in items:
        raise HTTPException(status_code=404, detail="Item not found")
    return items[name]

10. Конвертация кода между версиями Python

Задача: обновить код с Python 2 на 3 или с 3.8 на 3.12.

Промт:

Перепиши этот код с Python {старая версия} на Python {новая версия}. Используй новые синтаксические возможности (f-строки, walrus operator, match-case). Поясни изменения.

Пример: замена % форматирования на f-строки, dict.has_key() на in.

11. Документирование кода

Задача: добавить docstring и комментарии.

Промт:

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

12. Генерация регулярных выражений

Задача: создать regex для сложного шаблона.

Промт:

Напиши регулярное выражение на Python для поиска {описание}. Поясни каждый элемент. Приведи примеры совпадений и несовпадений.

Пример: поиск email-адресов:

import re
pattern = r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"

Как использовать эти промты эффективно

  • Уточняйте контекст: чем больше деталей (версия Python, библиотеки, ограничения), тем точнее ответ.
  • Итеративно: если результат не идеален, попросите улучшить или объяснить.
  • Проверяйте код: AI может ошибаться, всегда тестируйте.

Эти 12 промтов покрывают основные ежедневные задачи Python-разработчика. Экспериментируйте, адаптируйте под свой стиль и делитесь своими находками.


Источники:
- Документация Python: https://docs.python.org/3/
- PEP 8: https://peps.python.org/pep-0008/
- FastAPI: https://fastapi.tiangolo.com/
- pandas: https://pandas.pydata.org/docs/
- asyncio: https://docs.python.org/3/library/asyncio.html

← Все статьи

Комментарии

Читайте также

Кейс по маркировке CE: Как медицинский стартап сократил время выхода на рынок ЕС по MDR на 40%

9 сентября 2026

Как AI-агент ASI Biont автоматизирует платежи через Stripe: пошаговое руководство без кода

1 июля 2026

Интеграция роботизированной руки с AI-агентом ASI Biont: полное руководство по подключению и автоматизации

17 июля 2026

Как Java и C# — корпоративная разработка на Asibiont.com сокращает затраты на микросервисы: пример использования Spring Boot и Kafka

2 сентября 2026

Промышленная автоматизация без кода: как подключить Modbus/TCP (PLC, RTU) к AI-агенту ASI Biont

24 июля 2026

AI для анализа текстов: как нейросети проверяют договоры, статьи и документацию с помощью RAG

16 июня 2026

Firefox в браузере: как WebAssembly меняет правила игры и что это значит для vibe coding

15 июля 2026

Vibe Coding с Flux 3: Как я автоматизировал создание 500+ визуалов за месяц без дизайнера

24 июля 2026

Интеграция IMU/MPU6050 с AI-агентом ASI Biont: от детекции падений до управления роботами

17 июля 2026