← маршрут 1–48 · личный кабинет
Занятие 32. Сохранение состояния в файл
Перед началом
Что открыть: Открой рабочую версию проекта после занятия 31. Демонстрационный lesson-32.py используй как отдельный маленький пример.
Исходные данные: Сохраняемые значения: name='Лея', hp=8, coins=4. Формат — три строки в порядке name, hp, coins.
Что нужно понять
Занятие 32 посвящено теме «Сохранение состояния в файл». Здесь этот навык применяется не как отдельное упражнение, а как часть общей текстовой RPG. Текстовый файл позволяет восстановить простое состояние между запусками до изучения JSON. В первом запуске программа записывает имя, HP и монеты построчно. Во втором запуске читает эти строки, преобразует числа через int и восстанавливает переменные. Обработку отсутствующего файла изучим позже.
Минимальный пример
mode=input("Режим save/load: ").strip().lower()
if mode=="save":
name="Лея"; hp=8; coins=4
with open("save.txt","w",encoding="utf-8") as f:
f.write(name+"\n"); f.write(str(hp)+"\n"); f.write(str(coins)+"\n")
print("Сохранено")
elif mode=="load":
with open("save.txt",encoding="utf-8") as f:
name=f.readline().strip(); hp=int(f.readline().strip()); coins=int(f.readline().strip())
print("Восстановлено:",name,hp,coins)
else:
print("Выберите save или load")Скачать демонстрационный .py-файл
Практика
Сделай два режима save/load. В save запиши Лея, 8, 4 в save.txt. Полностью заверши запуск. Во втором запуске выбери load, прочитай три строки и восстанови name, hp, coins.
Связь с проектом: После базового упражнения перенеси изученный приём в рабочую версию проекта и сохрани версию после занятия 32.
Критерий проверки
После отдельного запуска save и последующего отдельного запуска load программа выводит: Лея 8 4. Ручное открытие файла не считается восстановлением состояния.
Как проверить: Запуск 1: save → файл создан. Закрой программу. Запуск 2: load → name='Лея', hp=8, coins=4.
Что сдать
Сдай файл программы, save.txt после первого запуска и запись результата второго запуска.
Если нужна поддержка: Если задача не запускается целиком, выполни один шаг отдельно и объясни, что должно измениться до следующего шага.
Типичное затруднение
Перед записью понимай, какой файл будет перезаписан. Не используй абсолютные пути к чужим папкам.
Домашняя часть
Добавь ещё одно поле состояния и прочитай файл после полного закрытия программы.
После базы: Сравни режимы w и a на отдельном тестовом файле.
Если появилась ошибка
Traceback — сообщение Python об ошибке. Сначала прочитай его последнюю строку и найди номер строки своего файла. Повтори только тот маленький шаг, на котором возникла ошибка; после исправления снова запусти тот же проверочный случай. Если используешь ИИ, сохрани собственную попытку и попроси одну подсказку, а не готовое решение.