Случайность и игра «Угадай число»

Пока твои программы были предсказуемы: запустил — всегда одно и то же. Но в играх нужен сюрприз. Сегодня добавим случайность командой random и соединим её с условиями из прошлого раздела — получится настоящая игра «Угадай число».

Робот играет в угадай число: случайные кубики и вопрос больше или меньше

Случайность: модуль random

В Python есть набор готовых инструментов для случайности — модуль random. Чтобы им пользоваться, в самом начале программы пишут import random (подключить модуль). Дальше команда random.randint(a, b) возвращает случайное целое число от a до b — причём оба края включаются.

import random

kubik = random.randint(1, 6)
print(kubik)
4
  random.randint(1, 6)  — бросок кубика

  возможные результаты:  1  2  3  4  5  6
                         \________________/
                          выпадет ОДНО, случайно

  оба края включаются: и 1, и 6 могут выпасть
import random пишут ОДИН раз в начале программы. Забудешь — Python не поймёт слово random и выдаст ошибку. Запустишь программу несколько раз — число будет каждый раз разным, это и есть случайность.

Случайное + условие = мини-игра

Соединим случайность с условиями (if/elif/else из прошлого раздела). Компьютер загадывает число, ты вводишь догадку, программа сравнивает и подсказывает: больше, меньше или в точку.

import random

zagadka = random.randint(1, 10)
dogadka = int(input("Угадай число от 1 до 10: "))

if dogadka == zagadka:
    print("Угадал!")
elif dogadka < zagadka:
    print("Загадано больше")
else:
    print("Загадано меньше")
Угадай число от 1 до 10: 5
Загадано больше
  Сравниваем догадку с загаданным:

   dogadka == zagadka   -->  "Угадал!"
   dogadka <  zagadka   -->  "Загадано больше"
   dogadka >  zagadka   -->  "Загадано меньше"
Пока у тебя одна попытка за запуск. В следующем разделе добавим циклы — и сможешь угадывать снова и снова, пока не угадаешь. Получится настоящая игра.

Упражнение: угадай число и случайное предсказание

Скопируй программу и запусти несколько раз. Сначала угадай число, потом получи случайное предсказание. Запускай заново — и число, и предсказание будут меняться.

import random

# Игра: угадай число
zagadka = random.randint(1, 10)
dogadka = int(input("Угадай число от 1 до 10: "))
if dogadka == zagadka:
    print("Угадал! Ты молодец!")
elif dogadka < zagadka:
    print("Загадано больше")
else:
    print("Загадано меньше")

# Случайное предсказание
predskazanie = random.randint(1, 3)
if predskazanie == 1:
    print("Удача рядом!")
elif predskazanie == 2:
    print("Будь сегодня внимателен.")
else:
    print("Впереди приятный сюрприз!")
Угадай число от 1 до 10: 5
Загадано больше
Впереди приятный сюрприз!
  • Поменяй диапазон: загадывай число от 1 до 100 — стало труднее.
  • Придумай свои тексты предсказаний.
  • Добавь четвёртое предсказание: расширь до random.randint(1, 4) и допиши ветку elif.
Помнишь бота-предсказателя из прошлого урока, где число вводил ты? Теперь его выбирает случай — это и есть «настоящий магический шар».

Контрольный вопрос. Что делает команда random.randint(1, 6)?

АВозвращает случайное целое число от 1 до 6 (оба края включаются)
БВозвращает всегда число 6
ВСкладывает числа 1 и 6

Подсказка: randint — это random integer (случайное целое). В скобках — границы диапазона.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Может ли random.randint(1, 6) вернуть число 7?

АНет — только от 1 до 6, эти границы не превышаются
БДа, иногда может выпасть и 7
ВДа, если запустить программу много раз

Подсказка: randint(1, 6) выдаёт числа строго в диапазоне от 1 до 6 включительно.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Что будет, если в программе использовать random.randint, но забыть строку import random?

АПрограмма выдаст ошибку — Python не знает, что такое random
БПрограмма сработает, random подключается сам
ВЧисла перестанут быть случайными

Подсказка: Модуль нужно сначала подключить, иначе Python не понимает незнакомое слово.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Какую строку пишут в самом начале программы, чтобы пользоваться случайными числами? Впиши её целиком.

Подсказка: Это команда «подключить модуль random». Два слова: сначала import, потом имя модуля.

Онлайн-проверка ответа появится позже

Задание. Напиши код сам. Напиши команду, которая выведет на экран случайное число от 1 до 100. Модуль random уже подключён.

Исходный код для этого задания:

import random
# напиши ниже команду print со случайным числом от 1 до 100

Подсказка: Случайное целое даёт random.randint(начало, конец). Шаблон: print(random.randint(1, 100)).

✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.

Онлайн-проверка ответа появится позже

Задание. Напиши код сам. Напиши команду, которая выведет случайный бросок игрального кубика (число от 1 до 6). Модуль random уже подключён.

Исходный код для этого задания:

import random
# напиши ниже команду print со случайным числом от 1 до 6

Подсказка: У кубика грани от 1 до 6. Шаблон: print(random.randint(1, 6)).

✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Что выведет на экран программа из этого задания? Впиши то, что появится (без кавычек).

Исходный код для этого задания:

zagadka = 7
dogadka = 5
if dogadka == zagadka:
    print("Угадал")
elif dogadka < zagadka:
    print("Загадано больше")
else:
    print("Загадано меньше")

Подсказка: Тут числа заданы (не случайные). dogadka 5, zagadka 7. Проверь: 5 меньше 7?

Онлайн-проверка ответа появится позже

Контрольный вопрос. Что выведет на экран программа из этого задания? Впиши то, что появится (без кавычек).

Исходный код для этого задания:

zagadka = 4
dogadka = 9
if dogadka == zagadka:
    print("Угадал")
elif dogadka < zagadka:
    print("Загадано больше")
else:
    print("Загадано меньше")

Подсказка: dogadka 9, zagadka 4. 9 не равно 4 и не меньше 4 — значит сработает ветка else.

Онлайн-проверка ответа появится позже

Задание. Допиши игру. В ветке, где догадка совпала с загаданным, не хватает ответа. Напиши команду print, которая выведет ровно: Угадал!

Исходный код для этого задания:

if dogadka == zagadka:
    # напиши тут команду print со словом: Угадал!
elif dogadka < zagadka:
    print("Загадано больше")
else:
    print("Загадано меньше")

Подсказка: Шаблон: print(«…текст…»). Текст в кавычках: Угадал!

✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.

Онлайн-проверка ответа появится позже

Что дальше

Теперь твои программы умеют удивлять — случайные числа оживили игру. Но пока на угадывание даётся одна попытка. В следующем разделе добавим циклы: программа сможет повторять вопрос, пока ты не угадаешь, и мы соберём ещё игру — «Камень-ножницы-бумага».

Назад  ·  ↑ В начало урока  ·  ⌂ В начало курса  ·  Вперёд →

Школа Виктора Комлева