Глава 5 · Давайте поиграем с числами!

Работа со случайными числами

Без капли случайности сложно представить хоть одну игру — знакомимся с модулем random.

Модуль random добавляет в Python элемент случайности — без него не обходится почти ни одна игра: случайный противник, случайная карта, случайное число для игры «Угадай число» в главе 9.

sluchaynye.py
import random

print(random.random())          # случайное дробное число от 0.0 до 1.0 (не включая 1.0)
print(random.randint(1, 6))     # случайное целое от 1 до 6 включительно — как кубик
print(random.uniform(1, 10))    # случайное дробное от 1 до 10
randint включает обе границы
random.randint(1, 6) может вернуть и 1, и 6 — обе границы включены. Это частая причина ошибок «на единицу» (off-by-one), если забыть об этом.

Случайный выбор из списка

Забегая немного вперёд (списки подробно разберём в главе 11) — random.choice() умеет выбрать случайный элемент из готового набора значений:

sluchaynyj_vybor.py
import random

variants = ["камень", "ножницы", "бумага"]
print(random.choice(variants))
Диапазон случайных чисел: вручную → готовая функция
Классический подход
import random

# случайное целое от 1 до 6 вручную:
roll = int(random.random() * 6) + 1
print(roll)
Современный Python 3.14
import random

# то же самое — готовой функцией
roll = random.randint(1, 6)
print(roll)
Что использовать сегодня: готовые функции вроде randint() и uniform() — они существовали в модуле random ещё в старых версиях Python, но начинающие часто сначала пытаются собрать диапазон вручную через random.random(), не зная о них. Готовые функции короче и меньше подвержены ошибкам — особенно на границах диапазона.
Практика в Jupyter Notebook
05-05-sluchaynye-chisla.ipynb · модуль random на практике
Открыть ноутбук →