← маршрут 1–48 · личный кабинет

Занятие 32. Сохранение состояния в файл

45 минут учебной работыиндивидуальнотекстовая RPG

Перед началом

Что открыть: Открой рабочую версию проекта после занятия 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 об ошибке. Сначала прочитай его последнюю строку и найди номер строки своего файла. Повтори только тот маленький шаг, на котором возникла ошибка; после исправления снова запусти тот же проверочный случай. Если используешь ИИ, сохрани собственную попытку и попроси одну подсказку, а не готовое решение.