Задача курса

Консольный менеджер заметок на Python: практическая задача

Курс «Python для новичков» · урок «Итоговое консольное приложение»

Условие

Соберите консольный менеджер заметок

В рабочей папке находится файл notes.txt. Напишите законченную программу — консольный менеджер заметок.

Используйте две синхронные структуры:

  • notes — список словарей вида {'id': int, 'text': str} в порядке добавления;
  • notes_index — словарь вида {id: text} для доступа по идентификатору.

При запуске прочитайте notes.txt через with open(..., encoding='utf-8'). Каждая непустая строка имеет формат id|text: разделяйте её только по первому символу |. Если файла нет, продолжите с пустыми структурами. Строку с идентификатором, который нельзя преобразовать в int, пропустите через try-except ValueError.

Определите функцию show_notes(notes), выводящую каждую заметку в формате [id] text.

Затем запустите while True и обрабатывайте команды:

  • 1 — запросить текст, создать заметку с id = len(notes) + 1 и добавить её в обе структуры;
  • 2 — вызвать show_notes(notes);
  • 3 — перезаписать notes.txt в режиме w, сохранив весь список по одной строке id|text;
  • 0 — так же сохранить весь список и завершить цикл через break.

Не используйте глобальные данные внутри show_notes: функция получает список параметром. Скрытая проверка подготовит входной файл и последовательность команд.

Попробуйте решить

РешениеPython
Без регистрации · результат не сохраняется