Глава 13 · Автоматизация с помощью функций

Мини-проект — анализатор текста, версия 2

Тот же анализатор текста из главы 12 — но теперь как чистый, тестируемый конвейер функций.

Используем
defreturnlistsetdict
Уровень
★★★ интеграционный
Результат
текстовый отчёт

Полный рефакторинг анализатора текста из главы 12 (§12.6) в конвейер из чистых функций — прямое продолжение идеи §13.21.

MAIN
normalize_text
split_words
word_frequency
build_summary
Каждая стадия — отдельная, независимо тестируемая функция
analizator_v2.py
def normalize_text(text):
    return text.lower()

def split_words(text):
    return text.split()

def word_frequency(words):
    counts = {}
    for word in words:
        counts[word] = counts.get(word, 0) + 1
    return counts

def build_summary(text):
    clean = normalize_text(text)
    words = split_words(clean)
    counts = word_frequency(words)
    return {
        "total_words": len(words),
        "unique_words": len(set(words)),
        "counts": counts,
    }

summary = build_summary("Python is great and python is fun")
print(summary)
build_summary — это конвейер, вызывающий остальные три
Точно паттерн из §13.21: build_summary ничего не вычисляет сама — она передаёт данные по цепочке normalize_text → split_words → word_frequency и собирает итог в словарь.
Практика: анализатор текста как конвейер функций
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки
Открыть практику →