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