Глава 12 · Множество увлекательных мини-проектов!

Что такое проект

До сих пор мы изучали инструменты по отдельности. Теперь учимся складывать их в настоящую программу — начиная с того, как вообще подступиться к большой задаче.

От инструментов — к программе

Главы 1-11 научили вас инструментам по отдельности: строкам, числам, условиям, циклам, Turtle, спискам и словарям. Эта глава не добавляет новых инструментов — она учит складывать их вместе, чтобы получилась настоящая, работающая программа.

СтрокиЧислаУсловияЦиклыСписки / словариTurtleПРОГРАММА
Главы 1-11 — отдельные инструменты. Глава 12 — как собрать их в одну программу

Чем проект отличается от упражнения

УпражнениеПроект
ПримерВычислите 7 % 3Постройте конвертер секунд в часы/минуты/секунды с проверкой ввода
Входные данныеобычно нетесть, и их нужно продумать заранее
Шаговодиннесколько, связанных друг с другом
Результатодно значениеоформленный вывод, реакция на разные случаи
Ошибкипочти невозможнынужно продумать, что может пойти не так
Проект — это не «код побольше»
Разница не в количестве строк, а в том, что у проекта есть цель, входные данные, правила и результат — и всё это нужно продумать до того, как написана первая строка кода.

Декомпозиция: разбиваем большую задачу на маленькие

Задача «Постройте игру-угадайку» слишком большая, чтобы решить её одним куском кода. Разобьём на понятные шаги:

Построитьигру-угадайку1. Выбрать секретслучайное число2. Спросить игрокаinput()3. Преобразоватьвводint()4. Сравнитьесли/иначе5. Подсказатьмало/много6. Повторитьцикл7. Считать попыткисчётчик8. Завершитьугадал!
Декомпозиция: одна большая задача → восемь маленьких, понятных шагов
Декомпозиция
Декомпозиция — разделить большую задачу на маленькие понятные части. Это один из самых важных навыков в программировании: гораздо проще написать (и проверить) восемь маленьких шагов, чем один запутанный кусок кода на сто строк.

Шаблон проекта, который мы будем использовать

Каждый крупный проект этой главы устроен по одной и той же схеме — не обязательно с этими же самыми заголовками, но в этом же порядке мысли:

Повторяющийся ритм каждого проекта главы
1 · Что создаём
Цель проекта
Как выглядит готовый результат
2 · Данные
Входные данные
Какая структура их хранит
3 · Алгоритм
Порядок действий
Блок-схема, если это уместно
4 · Реализация
По одному этапу за раз
Проверка после каждого этапа
5 · Проверка
Типичные ошибки
Debug Lab
Что можно улучшить

Требования и «что значит „готово“»

Прежде чем писать код, полезно явно сформулировать требования — что программа обязана делать, чтобы считаться готовой. Пример для будущей игры-угадайки:

ТребованиеПроверка
компьютер выбирает целое число от 1 до 100секрет — int в диапазоне [1, 100]
игрок вводит числа-попыткиinput() + int()
программа говорит «мало» / «много»if/elif/else
программа завершается на правильном ответецикл прекращается при guess == secret
попытки считаютсяcounter увеличивается на каждой попытке
Чек-лист приёмки
Такой список называют чек-листом приёмки — до кода мы уже знаем, что именно должно быть верно, чтобы сказать «проект готов». Не обязательно оформлять его формально каждый раз — но держать в голове стоит всегда.

Разминка: статистика трёх чисел

Прежде чем переходить к крупным проектам, потренируем сам процесс — от задачи до кода — на программе из нескольких строк.

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

statistika_treh_chisel.py
a = float(input("Первое число: "))
b = float(input("Второе число: "))
c = float(input("Третье число: "))

chisla = [a, b, c]

print(f"Минимум: {min(chisla)}")
print(f"Максимум: {max(chisla)}")
print(f"Сумма: {sum(chisla)}")
print(f"Среднее: {sum(chisla) / len(chisla):.2f}")
Даже такая маленькая программа — уже проект
У неё есть входные данные (три числа), структура для их хранения (список — глава 11), правило обработки (min/max/sum/len — глава 11) и оформленный результат (f-строки — глава 8). Дальше в главе — то же самое, но крупнее.
Практика: статистика трёх чисел — от задачи до кода
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки
Открыть практику →