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

Занятие 37. Надёжный ввод и обработка ValueError

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

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

Что открыть: Открой рабочую версию проекта после занятия 36. Демонстрационный lesson-37.py используй как отдельный маленький пример.

Исходные данные: Начни с значений из минимального примера. Творческие изменения выполняй только после базовой проверки.

Что нужно понять

Занятие 37 посвящено теме «Надёжный ввод и обработка ValueError». Здесь этот навык применяется не как отдельное упражнение, а как часть общей текстовой RPG. ValueError возникает, когда int получает неподходящий текст. try/except перехватывает ожидаемую ошибку, continue немедленно начинает следующую итерацию цикла, а return выполняется только после корректного значения.

Минимальный пример

def ask_attempts():
    while True:
        try:
            value = int(input("Число попыток 1–5: "))
        except ValueError:
            print("Введите целое число")
            continue
        if 1 <= value <= 5:
            return value
        print("Допустимы значения от 1 до 5")

attempts = ask_attempts()
print("Попыток:", attempts)

Скачать демонстрационный .py-файл

Практика

Создай функцию ввода числа попыток от 1 до 5. Проверь текст, 0, 6, а затем корректные значения 1 и 5.

Связь с проектом: После базового упражнения перенеси изученный приём в рабочую версию проекта и сохрани версию после занятия 37.

Критерий проверки

Слово, 0 и 6 отклоняются с повторным запросом; 1 и 5 принимаются; функция возвращает значение только после успешной проверки.

Как проверить: В одном запуске: слово → 0 → 6 → 1. Первые три значения отклоняются, 1 возвращается как int.

Что сдать

Сдай рабочую версию проекта после занятия 37 и короткий протокол проверки: входные данные → ожидалось → получилось.

Если нужна поддержка: Если задача не запускается целиком, выполни один шаг отдельно и объясни, что должно измениться до следующего шага.

Типичное затруднение

После ValueError переходи к следующей итерации и не используй переменную, которая не получила корректное число.

Домашняя часть

Применяй функцию к одному игровому параметру с диапазоном 1–5 и проверь минимум четыре ошибочных ввода.

После базы: Добавь команду отмены, не смешивая её с числовым результатом.

Если появилась ошибка

Traceback — сообщение Python об ошибке. Сначала прочитай его последнюю строку и найди номер строки своего файла. Повтори только тот маленький шаг, на котором возникла ошибка; после исправления снова запусти тот же проверочный случай. Если используешь ИИ, сохрани собственную попытку и попроси одну подсказку, а не готовое решение.