Глава 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, без установки