Найти в Дзене
Код как искусство

Первая игра на Python: разбор кода, который вы поймёте с нуля

Теория — это важно, но настоящий интерес просыпается, когда вы запускаете свою первую программу, с которой можно взаимодействовать. Сегодня мы напишем классическую игру «Угадай число». Компьютер загадает число от 1 до 100, а вы будете его отгадывать. В процессе разберём: Готовы? Открывайте редактор и повторяйте шаг за шагом. В Python уже есть множество встроенных инструментов. Для генерации случайных чисел нам понадобится модуль random: import random Никаких дополнительных установок не требуется. Модуль — это набор готовых функций. Строка import random говорит интерпретатору: «дай мне доступ ко всем инструментам из этого набора». Функция randint(a, b) возвращает случайное целое число от a до b включительно: secret_number = random.randint(1, 100) Переменная secret_number хранит загаданное число. Мы её пока не показываем — это секрет. Выведем приветствие и попросим пользователя ввести число. Вспомним: input() всегда возвращает строку, а нам нужно число для сравнения. Поэтому сразу преобр
Оглавление

Теория — это важно, но настоящий интерес просыпается, когда вы запускаете свою первую программу, с которой можно взаимодействовать. Сегодня мы напишем классическую игру «Угадай число». Компьютер загадает число от 1 до 100, а вы будете его отгадывать.

В процессе разберём:

  • как работает генератор случайных чисел,
  • как организовать цикл с условием,
  • зачем нужны преобразования типов,
  • и как отлавливать ошибки ввода.

Готовы? Открывайте редактор и повторяйте шаг за шагом.

1. Импортируем модуль random

В Python уже есть множество встроенных инструментов. Для генерации случайных чисел нам понадобится модуль random:

import random

Никаких дополнительных установок не требуется. Модуль — это набор готовых функций. Строка import random говорит интерпретатору: «дай мне доступ ко всем инструментам из этого набора».

2. Загадываем число

Функция randint(a, b) возвращает случайное целое число от a до b включительно:

secret_number = random.randint(1, 100)

Переменная secret_number хранит загаданное число. Мы её пока не показываем — это секрет.

3. Приветствие и первый ввод

Выведем приветствие и попросим пользователя ввести число. Вспомним: input() всегда возвращает строку, а нам нужно число для сравнения. Поэтому сразу преобразуем в int.

print("Я загадал число от 1 до 100. Попробуй угадать!")

guess = int(input("Твой вариант: "))

Если пользователь введёт не число — программа упадёт с ошибкой. Пока не страшно, чуть позже мы это исправим.

4. Цикл while: даём шанс до победного

Сейчас программа один раз спросит число и завершится. Нам же нужно давать подсказки «больше» / «меньше» и позволять пробовать снова, пока пользователь не угадает. Для этого используем цикл while:

while guess != secret_number:
if guess < secret_number:
print("Загаданное число БОЛЬШЕ.")
else:
print("Загаданное число МЕНЬШЕ.")

guess = int(input("Попробуй снова: "))

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

5. Поздравление и защита от ошибок

Когда цикл завершится (пользователь угадал), выведем поздравление. Но есть нюанс: если на любом шаге ввести текст вместо числа, программа аварийно завершится. Добавим обработку исключений.

Соберём весь код с защитой от некорректного ввода:

import random

secret_number = random.randint(1, 100)
print("Я загадал число от 1 до 100. Попробуй угадать!")

while True:
try:
guess = int(input("Твой вариант: "))

if guess < secret_number:
print("Загаданное число БОЛЬШЕ.")
elif guess > secret_number:
print("Загаданное число МЕНЬШЕ.")
else:
print(f"Поздравляю! Ты угадал число {secret_number}!")
break
except ValueError:
print("Ошибка: нужно ввести целое число. Попробуй ещё раз.")

Разберём новые элементы:

  • while True — бесконечный цикл, выходим из него только через break при угадывании.
  • try / except — если внутри try возникает ошибка преобразования в число (ValueError), выполнение переходит в блок except, выводится сообщение об ошибке, и цикл продолжается.
  • f-строка — удобный способ вставить значение переменной в текст: f"...{secret_number}...".

6. Запускаем и играем

Сохраните файл с расширением .py (например, guess_number.py) и запустите в терминале:

python guess_number.py

Теперь у вас есть полноценная игра, которую можно показать друзьям или доработать.

7. Что можно улучшить (первые идеи для развития)

Если код уже работает, попробуйте добавить:

  • Счётчик попыток — выводить, сколько попыток потребовалось.
  • Ограничение числа попыток — если не угадал за 10 раз, программа завершается и выдаёт загаданное число.
  • Диапазон чисел — пусть пользователь сам выбирает максимум.
  • Снова сыграем? — после окончания спрашивать, хочет ли пользователь повторить.

Пример добавления счётчика:

attempts = 0
while True:
try:
guess = int(input("Твой вариант: "))
attempts += 1
# ... остальная логика ...
else:
print(f"Поздравляю! Ты угадал число {secret_number} за {attempts} попыток!")
break
except ValueError:
print("Ошибка: нужно ввести целое число.")

Заключение

За 20 минут вы написали интерактивную программу, использовали:

  • импорт модулей,
  • генерацию случайных чисел,
  • условные операторы (if-elif-else),
  • циклы (while),
  • преобразование типов,
  • обработку исключений.

Это и есть та самая база, на которой строятся более сложные проекты. Если что-то пошло не так — перечитайте сообщения об ошибках, они всегда подсказывают, что исправить.

В следующей статье разберём, как превратить эту игру в полноценное приложение с графическим интерфейсом или веб‑страницу. А пока — тренируйтесь, экспериментируйте и не бойтесь ломать код. Именно так рождается настоящее понимание.