УРОК 1 · НАЧИНАЕМ С НУЛЯ

Собери Магический шар

Напиши свою первую консольную игру: задай вопрос, подожди три секунды и получи случайный ответ.

Магический шар

Цель: Собрать работающую игру и суметь объяснить каждую её строку простыми словами.

Как запустить пример

  1. Нажми «Запустить в IDE» под кодом. Откроется страница с редактором и результатом.
  2. Дождись надписи «Python готов». Код примера уже будет в редакторе.
  3. Если видишь в коде input(), сначала напиши свой вопрос в поле «Ответы для input()» справа. Например: «Будет ли дождь?»
  4. Нажми кнопку «▶ Запустить». Смотри на блок «Результат». Потом вернись к уроку и сравни его со снимком.

Можно также скачать готовый файл и открыть его в Python IDLE: там вопрос вводится прямо во время работы программы.

ШАГ 1 ИЗ 5

Поздоровайся с игроком

Консоль — это окно, в котором программа показывает текст и получает ответы. Начнём с одного сообщения. Перепиши код точно: в Python важны кавычки, скобки и большие буквы.

Python
Запустить в IDE ↗
print("🔮 Магический шар")print("Я отвечу на твой вопрос!")
Что появится в консоли
🔮 Магический шар
Я отвечу на твой вопрос!

Разбираем построчно

  1. Python выполняет строки сверху вниз. Сначала появится название, затем приглашение к игре.
  2. print() — готовая команда Python для вывода на экран. Внутри круглых скобок пишем то, что хотим показать.
  3. Кавычки означают, что перед нами готовый текст. Без кавычек Python попытался бы найти переменную с таким именем.
  4. Каждый print() по умолчанию заканчивает строку. Поэтому второе сообщение начинается ниже первого.
Реальный запуск первого примера: два print() вывели две строки приветствия.
Реальный запуск первого примера: два print() вывели две строки приветствия.
ШАГ 2 ИЗ 5

Спроси и запомни вопрос

Теперь программа начнёт разговаривать с игроком. input() показывает приглашение и получает написанный ответ. Переменная question сохранит этот ответ, чтобы мы могли использовать его позже.

Python
Запустить в IDE ↗
print("🔮 Магический шар")question = input("Задай вопрос: ")print("Ты спросил:", question)
Что появится в консоли
🔮 Магический шар
Задай вопрос: Будет ли дождь?
Ты спросил: Будет ли дождь?

Разбираем построчно

  1. input("Задай вопрос: ") показывает текст в кавычках и ждёт, пока игрок напишет ответ и нажмёт Enter.
  2. Знак = здесь означает «сохрани результат справа под именем слева». Это не проверка на равенство.
  3. question — имя переменной. Представь подписанную коробку: в ней лежит введённый игроком текст.
  4. В последней строке question написано без кавычек. Поэтому print() показывает содержимое переменной, а не слово question.
  5. Запятая в print() разделяет две части вывода. Python вставит между ними пробел.
Реальный запуск шага 2 в онлайн IDE. Вопрос «Будет ли дождь?» был заранее записан в поле ответов для input().
Реальный запуск шага 2 в онлайн IDE. Вопрос «Будет ли дождь?» был заранее записан в поле ответов для input().
ШАГ 3 ИЗ 5

Подготовь ответы шара

Шар должен отвечать по-разному. Для этого соберём ответы в список и попросим модуль random выбрать один из них. При следующем запуске ответ может измениться.

Python
Запустить в IDE ↗
import randomanswers = ["Да!", "Нет.", "Спроси позже."]answer = random.choice(answers)print("Шар отвечает:", answer)

Ответ выбирается случайно: попробуй запустить несколько раз.

Разбираем построчно

  1. import random подключает готовый модуль со случайным выбором. import нужно написать до использования random.
  2. Квадратные скобки создают список: несколько значений в одной переменной. Каждый ответ — текст в кавычках; элементы разделены запятыми.
  3. random.choice(answers) берёт один элемент из списка answers. Точка связывает имя модуля random с его командой choice.
  4. Результат выбора сохраняется в переменной answer. Мы печатаем именно её, чтобы увидеть выбранную фразу.
  5. Случайный выбор означает, что на снимке показан только один возможный результат. У тебя может выпасть другой ответ — это нормально.
Реальный запуск шага 3. На снимке показан один случайный ответ; при повторном запуске он может измениться.
Реальный запуск шага 3. На снимке показан один случайный ответ; при повторном запуске он может измениться.
ШАГ 4 ИЗ 5

Добавь ожидание: Думаю...

Пусть шар не отвечает сразу. Цикл for повторит действие три раза: подождёт секунду и добавит одну точку. Так мы повторим цикл и увидим, зачем нужны отступы.

Python
Запустить в IDE ↗
import timeprint("Думаю", end="", flush=True)for i in range(3):    time.sleep(1)    print(".", end="", flush=True)print()
Что появится в консоли
Думаю...

Разбираем построчно

  1. import time подключает модуль времени. time.sleep(1) приостанавливает программу на одну секунду.
  2. for i in range(3): повторит строки с отступом три раза. На каждом круге i получает очередное число: 0, 1, затем 2. Число здесь нам не нужно, но цикл всё равно его считает.
  3. Четыре пробела перед time.sleep() и print() показывают, что обе команды находятся внутри цикла. После цикла print() снова стоит без отступа.
  4. end="" убирает обычный переход на новую строку: слово и точки остаются рядом.
  5. flush=True просит Python немедленно отправить текст на экран. True означает «включено». Без этого текст иногда показывается лишь после завершения программы.
  6. Последний пустой print() переводит курсор на новую строку, чтобы ответ шара появился ниже точек.
Почему нужны и end="", и flush=True?

end="" оставляет курсор на той же строке. flush=True сразу отправляет уже напечатанное на экран. Секунду отсчитывает только time.sleep(1). Если убрать flush=True, программа всё равно подождёт, но некоторые консоли покажут слово и точки лишь в конце.

Консоль Магического шара после первой секунды: Думаю.
Через первую секунду появилась только одна точка. Ещё две появятся позже.
Реальный запуск шага 4: после каждой секунды появилась ещё одна точка. На снимке виден итог трёх секунд.
Реальный запуск шага 4: после каждой секунды появилась ещё одна точка. На снимке виден итог трёх секунд.
ШАГ 5 ИЗ 5

Собери полную игру

Теперь соедини знакомые детали. Игрок задаёт вопрос, шар «думает» три секунды и выбирает ответ. Это уже законченная консольная игра из одного раунда.

Python
Запустить в IDE ↗
import randomimport timeprint("🔮 Магический шар")question = input("Задай вопрос: ")print("Ты спросил:", question)print("Думаю", end="", flush=True)for i in range(3):    time.sleep(1)    print(".", end="", flush=True)print()answers = ["Да!", "Нет.", "Спроси позже."]answer = random.choice(answers)print("Шар отвечает:", answer)

Ответ выбирается случайно: попробуй запустить несколько раз.

Разбираем построчно

  1. Два import стоят в начале: один нужен для случайного ответа, другой — для паузы.
  2. question хранит вопрос игрока. Мы выводим его обратно, чтобы игрок видел, что программа его услышала.
  3. Цикл делает три паузы по одной секунде. После каждой паузы на той же строке появляется точка.
  4. Список answers хранит возможные ответы, а random.choice() выбирает один. Переменная answer запоминает выбор.
  5. Программа заканчивается после одного ответа. Чтобы спросить снова, её можно запустить ещё раз.
Реальный запуск полной игры с вопросом «Будет ли дождь?». Случайный ответ у тебя может оказаться другим.
Реальный запуск полной игры с вопросом «Будет ли дождь?». Случайный ответ у тебя может оказаться другим.

Попробуй сам

  1. Замени название и приветствие на свои. Запусти и проверь, что две строки появились в консоли.
  2. Добавь в список answers ещё два собственных ответа в кавычках, разделив их запятыми.
  3. Поменяй range(3) на range(5). Сколько точек появится и сколько секунд будет думать шар?
  4. Запусти игру несколько раз с одним и тем же вопросом. Почему ответы могут отличаться?

Меняй по одной строке и запускай программу после каждого изменения.

Если программа не запускается

  • Нет ответа на вопрос: заполни поле «Ответы для input()» перед запуском в IDE.
  • Ошибка после for: проверь двоеточие в конце строки и четыре пробела перед двумя командами цикла.
  • Python не понял текст: проверь парные кавычки и скобки. Текст сообщения должен быть в кавычках.
  • Ответ отличается от снимка: это нормально — шар выбирает случайно.

Готовая игра

Полный код ниже можно скачать как файл .py или открыть в онлайн IDE. Для настоящего постепенного появления точек запускай игру в Python IDLE или в терминале; в браузерной IDE также можно следить за выводом после каждого flush.

Заметка для преподавателя

На первом занятии не требуйте запоминать все слова сразу. После каждого шага пусть ребёнок сначала предскажет вывод, затем запустит код. Отдельно проверьте кавычки, круглые скобки, четыре пробела в цикле и заполненное поле ответов для input() в онлайн IDE.