Код БарсикОсновы Python
Основы Python›C07 · Теория

Теория · C07

Случайность и Волшебный шар

Разберись в теме, запусти пример и переходи к самостоятельным задачам.

РАЗБИРАЕМ ПО ШАГАМ

От идеи к работающему коду

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

Сразу к запуску примера ↓
Число выбирается из заданного диапазона, а условие связывает его с ответом.
Число выбирается из заданного диапазона, а условие связывает его с ответом.
  1. 1randint(1, 3)
  2. 2Одно число: 1, 2 или 3
  3. 3Одна соответствующая реплика

1. Модуль и импорт

Модуль — набор готовых функций и других объектов. random входит в стандартную библиотеку Python, поэтому отдельно устанавливать его не нужно. import random делает его доступным в программе.

Запись random.randint обращается к функции randint внутри модуля. Не называй свой файл random.py: такое имя может помешать импорту стандартного модуля на компьютере.

Python
import randomroll = random.randint(1, 6)print(roll)

2. Границы randint включены

random.randint(a, b) выбирает целое число от a до b включительно. Для randint(1, 6) возможны 1, 2, 3, 4, 5 и 6. Ноль и семь не подходят. Каждое из шести чисел имеет одинаковую вероятность.

Для монетки с редким исходом можно взять 1–10: значение 1 — ребро, 2–5 — орёл, 6–10 — решка. Ребро имеет вероятность 1/10, но остальные два исхода здесь не равновероятны.

Python
import randomroll = random.randint(1, 10)if roll == 1:    print("Ребро")elif roll <= 5:    print("Орёл")else:    print("Решка")

3. Проверяем случайную программу

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

В образце ниже seed фиксирован, чтобы можно было сравнить вывод. Для игры убери эту строку. Чтобы проверить все ветки, временно подставляй outcome = 1, затем 2 и 3 вместо случайного вызова. После проверки верни randint.

Python
import randomrandom.seed(7)outcome = random.randint(1, 3)print(outcome)

4. Первая версия в Git

Git сохраняет историю изменений проекта. Репозиторий — папка, историю которой отслеживает Git. Коммит — сохранённый снимок выбранных изменений с пояснением. GitHub — сервис для хранения репозиториев и совместной работы.

Сначала сохрани main.py и README.md, проверь запуск. В терминале папки выполни git init, затем git add main.py README.md и git commit -m "Первая версия". Эти команды выполняются в терминале компьютера, не в интерпретаторе Python на сайте.

5. Из локальной папки в портфолио

Для первого размещения можно создать репозиторий в интерфейсе GitHub и загрузить main.py и README.md через Add file → Upload files. Чтобы отправлять локальную историю Git, используй команды подключения репозитория, которые покажет GitHub.

В README укажи назначение программы, запуск python main.py, пример диалога и известные ограничения. Не загружай пароли, токены и личные данные. Для этой игры никакие ключи не нужны.

Где легко ошибиться

  • Для кубика нужны границы 1 и 6, а не 0 и 6.
  • Одинаковые ответы подряд допустимы.
  • seed, установленный перед каждым броском в одно значение, повторяет первый результат.
Проверь понимание: Если ребро выпадает при 1 из 10 исходов, обязано ли оно выпасть ровно один раз за 10 запусков?

Нет. 1/10 — вероятность отдельного исхода. В небольшой серии ребро может не появиться ни разу или появиться несколько раз.

Случайный ответ шара

seed(7) фиксирует случайную последовательность для сравнения с образцом. Удали эту строку для обычной случайной игры.

Запусти пример. Затем измени код или входные данные и проверь, как меняется вывод.

Пример входных данных

Ввод не нужен

Ожидаемый вывод

Нет
main.pyPython · можно менять код

Подготавливаем редактор…

Загрузка Python…

Каждый ответ — с новой строки.

Твой вывод

Здесь появится результат запуска.

Дальше — самостоятельные задачи

  1. Получить грань от 1 до 6
  2. Смоделировать монетку с ребром 1 из 10 исходов
  3. Создать репозиторий и зафиксировать рабочую версию