Глава 10 · Немного автоматизации!
Проверка ввода в цикле
Один из самых практичных паттернов while — переспрашивать пользователя, пока введённое не станет подходящим.
Проблема: пользователь может ввести что угодно
Программа из главы 9 ожидала число от пользователя — но что, если он введёт слово или
оставит поле пустым? Цикл while позволяет переспрашивать, пока
ввод не станет подходящим:
proverka_vvoda.py
vozrast = input("Введите возраст: ")
while not vozrast.isdigit():
print("Нужно ввести число!")
vozrast = input("Введите возраст: ")
vozrast = int(vozrast)
print("Спасибо! Вам", vozrast, "лет")
isdigit() — простая, но ограниченная проверка
str.isdigit() проверяет, что строка состоит только из цифр — этого достаточно для целых положительных чисел, но не отличает "-5" (отрицательное число) или "3.5" (дробное) от некорректного ввода. Более надёжный способ проверки — конструкция try/except — мы изучим её в следующих главах; сейчас достаточно уметь проверять целые положительные числа.Ограничение количества попыток
Иногда бесконечно переспрашивать не годится — разумно ограничить число попыток:
proverka_s_limitom.py
popytki = 0
max_popytok = 3
while popytki < max_popytok:
vozrast = input("Введите возраст: ")
if vozrast.isdigit():
print("Принято:", vozrast)
break
print("Это не похоже на число.")
popytki += 1
else:
print("Слишком много неверных попыток.")
Здесь снова пригодился loop-else
Блок
else у while выполнится, только если попытки закончились без успешного break — ровно то, что нужно для сообщения «слишком много неверных попыток».Практика: проверка ввода в цикле
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки