
Информатика: создаём своего цифрового помощника Урок 38 из 38
Выпуск 1.0: консольный цифровой помощник
Соберём выпуск 1.0 в работающий консольный инструмент и честно проверим готовность ученика.
Где мы на карте
Это урок 38 из 72 и часть блока Python (уроки 27–38). Опорная схема показывает проверяемые переходы. Продолжаем бумажный договор версии 0.3: пять исходов напоминания и исходные вымышленные задачи.
Ситуация и вопрос
Одноклассник просит дать ему помощника без редактора кода. Он хочет увидеть список, добавить срок и отметить задачу. Достаточно ли показать один удачный экран? Нет: программа должна пережить закрытие окна, принять неверный ввод без потери данных и повторить бумажные правила напоминания.
Новые слова без пропусков
Интерфейс командной строки (CLI) принимает текстовую команду и аргументы. Аргумент — конкретное значение после команды, например --today 2026-10-09. Парсер разбирает эти слова и проверяет форму. Код завершения 0 означает успех, ненулевой — ошибку для другого инструмента. Выпуск — проверенная версия с инструкцией запуска и известными ограничениями. Доказательство готовности включает работающий файл, повторяемые тесты, ручной сценарий и объяснение ошибок; красивый экран без проверок не подходит.
Опорный сигнал
Вход → проверка правила → изменение состояния → наблюдаемый результат. Покажите пальцем, на каком шаге программа читает данные, где сравнивает их с договором и где только сообщает результат. Если шага не видно на схеме, найдите его в коде и добавьте в собственную трассу.
Разбираем шаг за шагом
Работайте с копией, а не с учебным образцом. (1) list показывает три исходные записи. (2) add t-04 "Жоба жазу" --due 2026-10-11 создаёт новую. (3) reminders --today 2026-10-09 выдаёт REMIND для t-04. (4) done t-04 сохраняет состояние. (5) Повторный запуск reminders выдаёт DONE. (6) Недопустимая дата или повторный id возвращают ошибку и не меняют файл. Проверьте каждое наблюдение после нового запуска процесса, иначе вы проверяете только память, а не сохранение.
Предскажите и проверьте
Закройте блок с выводом. По строкам проследите значения имён и напишите точный ожидаемый текст, включая регистр и порядок строк. Только затем выполните код из каталога step-03 командой python3 и сравните посимвольно. Поменяйте один вход; до запуска запишите новый прогноз. Если результат отличается, найдите первую строку расхождения, а не подгоняйте ответ задним числом.
from assistant import main
main(["reminders", "--today", "2026-10-09"])
Ожидаемый вывод
Today: 2026-10-09 (local calendar date)
t-01: REMIND
t-02: DONE
t-03: NO_DATE
Поймайте ошибку
Если задать --today только в одном запуске, а другой выполнится завтра, результаты нельзя сравнивать. Зафиксируйте дату в обеих командах. Не публикуйте личные имена, домашние задания других учеников и пароли в tasks.json: образец содержит только вымышленные записи.
Изменение проекта
Сохраните выпуск step-03 с кодом, тестами, вымышленным tasks.json и инструкциями на трёх языках. Следующий блок добавит веб-интерфейс, но правила и проверенные граничные случаи должны остаться прежними.
Задание и доказательство
Проведите проверки без подсказки: чтение старого 0.2, перевод в 1.0, добавление, повторное чтение, завершение, пять ветвей напоминания, неверная дата, повторный id, сохранение Ә, ошибочный JSON и запуск всех тестов. Для зачёта объясните не менее 8 из 10 контрольных вопросов, покажите работу программы и перенесите правило на новую задачу — например, расписание школьного клуба. Повторите не менее 7 из 10 через неделю и вернитесь к проекту через месяц.
Перенос в новую ситуацию
Школьный клуб хочет напоминать о встречах. Какие части помощника можно использовать без изменений, а какие требуют нового поля, версии формата и новых тестов? Назовите хотя бы одну границу, где простое переименование «задачи» в «встречи» будет неверным.
Возврат через 1, 7 и 30 дней
Через 1 день восстановите правило и один граничный пример без страницы. Через 7 дней объясните ошибку в новом примере однокласснику. Через 30 дней повторите тест проекта, проверьте, что прежние записи и вывод сохранились, и снова перенесите правило на другую задачу.
Все уроки курса
Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом
Комментарии (0)
Войдите, чтобы оставить комментарий →
Пока нет комментариев. Будьте первым.