
Информатика: создаём своего цифрового помощника Урок 47 из 72
От наблюдения к строке данных
Одна запись о занятии станет понятной строкой: что измерили, когда и для какой задачи.
Где мы на карте
Урок 47 из 72, блок «Данные, таблицы и базы» (47–54). Мы продолжаем помощника 1.1 с тремя вымышленными задачами. В конце блока его записи будут храниться в локальном SQLite, а проверенные правила напоминаний останутся прежними.
Ситуация и вопрос
Вы говорите: «Вчера занимался математикой». Друг записывает 20 минут, а вы помните 25. Что именно наблюдали: время по часам, примерную оценку или воспоминание? Без такого уточнения таблица выглядит точнее реальности.
Где взять файлы проекта
Откройте папку проекта 1.2, скачайте репозиторий через Code → Download ZIP и найдите course/informatics-assistant/step-05. Откройте терминал в этой папке; команда python3 --version должна показать установленный Python. Начните с CSV и JSON, не запускайте файл базы как программу.
Новые слова без пропусков
Наблюдение — зафиксированный факт по выбранному правилу. Строка — одно наблюдение; столбец — одно свойство всех строк. Схема задаёт названия и типы столбцов. Единица измерения здесь минута. Источник показывает, откуда появилась запись: бумажный журнал или учебное приложение. session_id отличает одну запись от другой, task_id связывает занятие с задачей. Эти ID не являются именами людей.
Опорный сигнал
Прочитайте схему слева направо. Для каждой стрелки назовите вход, преобразование и проверку. Закройте третий шаг и предскажите его. Затем найдите соответствующую строку в CSV, SQL или отчёте: нарисованная стрелка не должна подменять реальные значения и связи.
Разбираем шаг за шагом
Откройте вымышленный study_sessions.csv. В строке s-01,t-01,2026-10-07,20,paper одна учебная сессия: задача t-01, дата 7 октября, 20 минут, источник — бумага. Запятая разделяет поля; первая строка файла называет столбцы. Сравните со второй записью: у той же задачи другие дата, длительность и источник. Четыре строки — четыре наблюдения, а не четыре ученика. Проверьте, что список tasks.json содержит t-01 и t-03; иначе связь была бы выдумана.
Предскажите и проверьте
Сначала запишите ожидаемый вывод точно, включая порядок строк. Затем выполните код из папки step-05 и сравните посимвольно. Измените один вход и повторите цикл «предсказать — запустить — объяснить». Пример доказывает только заявленное правило: он не превращает учебные вымышленные данные в измерение реальных людей.
import csv
with open("study_sessions.csv", encoding="utf-8", newline="") as stream:
first = next(csv.DictReader(stream))
print(first["session_id"], first["task_id"], first["minutes"])
Ожидаемый вывод
s-01 t-01 20
Поймайте ошибку
Нельзя называть 20 минут объективным временем, если число восстановлено по памяти. Нельзя смешивать минуты и часы в одном столбце или считать две записи о той же задаче дублями только потому, что task_id совпал: отличает их session_id.
Изменение проекта
К версии 1.1 добавьте отдельный файл study_sessions.csv с четырьмя вымышленными наблюдениями. Задачи и правила напоминаний не меняются. В паспорте данных запишите: кто создал запись, что означает минута, какие значения допустимы и что сознательно не собирается (имена, оценки, точное местоположение).
Задание и доказательство
Нарисуйте пять столбцов. Для s-03 найдите дату, длительность и task_id. Придумайте новую вымышленную строку, которая не повторяет session_id, и объясните, как проверить её дату и единицу измерения.
Перенос в новую ситуацию
Школьный кружок считает посещения. Почему строка «участник был» не даёт права записать ноль минут, если время неизвестно? Как обозначить неизвестное, не выдавая его за ноль?
Возврат через 1, 7 и 30 дней
Через 1 день восстановите схему по памяти и назовите случай, где простая аналогия не работает. Через 7 дней объясните новую таблицу товарищу без текста и ответьте минимум на 7 из 10 вопросов итогового урока. Через 30 дней повторите импорт во временную папку и проверьте три задачи, четыре занятия, сумму 70 и неизменные напоминания. Запишите оставшийся непонятным термин и вернитесь к его первому определению.
Первоисточник для проверки
Следующий урок
Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом
Комментарии (0)
Войдите, чтобы оставить комментарий →
Пока нет комментариев. Будьте первым.