Что получится
Компьютер выбирает целое число от 1 до 20. Игрок вводит варианты, получает подсказку «больше» или «меньше» и видит число принятых попыток после победы. Буква q завершает игру. Ошибочный ввод не засчитывается как попытка. Это консольная программа: графическое окно и библиотека игр не нужны.
| Ситуация | Что проверить |
|---|---|
| Переменная secret | Хранит выбранное число |
| Цикл while | Повторяет ввод до выхода или победы |
| Условие | Выбирает подсказку |
| Обработка ошибки | Не даёт буквам сломать программу |
Как запустить
Используйте установленный Python 3 или учебную среду, поддерживающую интерактивный ввод. Сохраните код в файл и запустите его обычным способом своей среды. Введите число в консоли. Если редактор показывает только результат без возможности ввода, выберите интерактивный режим; это особенность запуска, а не ошибка правила игры.
from random import randint
secret = randint(1, 20)
attempts = 0
while True:
text = input("Число от 1 до 20 или q для выхода: ").strip()
if text.lower() == "q":
print("Игра завершена")
break
try:
guess = int(text)
except ValueError:
print("Введите целое число")
continue
if not 1 <= guess <= 20:
print("Число должно быть от 1 до 20")
continue
attempts += 1
if guess < secret:
print("Загаданное число больше")
elif guess > secret:
print("Загаданное число меньше")
else:
print("Угадано! Попыток:", attempts)
break
Как читать код
randint выбирает число с включёнными границами. input возвращает текст, поэтому int преобразует его в целое число. continue возвращает к следующему вводу, а break завершает цикл. Счётчик увеличивается только после проверки допустимого диапазона; буквы и число 25 не должны улучшать или ухудшать счёт игрока.
Проверьте до добавления новых функций
Введите слово, затем 25, затем допустимое число. Программа должна объяснить ошибку и продолжить. Для проверки обеих подсказок временно замените выбор случайного числа на secret = 10 и попробуйте 5, 15, 10. Результат — три принятые попытки. После проверки верните случайный выбор.
Задание для самостоятельной доработки
Измените верхнюю границу на 50. Найдите все места, где диапазон указан в коде и в тексте приглашения. Затем придумайте ограничение числа попыток и сначала опишите его словами. Не добавляйте одновременно несколько функций: так проще понять, какое изменение вызвало ошибку.
Что обсудить с ребёнком
Почему текст нельзя сравнить с числом без преобразования? Почему счётчик стоит после проверки диапазона? Чем выход q отличается от неверного ответа? Если ребёнок объясняет эти решения и способен поменять одно правило, проект уже полезнее простого переписывания готового листинга.
Дальнейшие занятия — в подборке Python для детей.
Источник для проверки: официальная документация Python, функция randint.
