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

Модуль random: псевдослучайность

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

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

«Случайное» число — на самом деле не совсем случайное

Компьютер не умеет создавать настоящую случайность из ничего — вместо этого random использует псевдослучайный генератор: формулу, которая по одному числу («состоянию») вычисляет следующее число, выглядящее беспорядочным, а затем обновляет своё состояние для следующего вызова. Числа выглядят случайными, но получены полностью детерминированной формулой.

psevdosluchajnost.py
import random

print(random.random())   # случайное дробное число от 0.0 до 1.0 (не включая 1.0)
print(random.random())   # другое число — состояние генератора обновилось
Зачем это знать, если можно просто пользоваться?
Потому что из этого следует важное практическое свойство: генератор можно перезапустить с того же самого состояния — и тогда он выдаст ту же самую последовательность чисел заново. Это называется воспроизводимостью, и мы разберём её подробно через несколько разделов — она незаменима при отладке программ со случайностью.

Что дальше в этом разделе

randint · randrange · uniform
случайные числа в диапазоне
choice · choices · sample · shuffle
случайный выбор из набора
seed
воспроизводимость и random vs secrets
Каждая карточка — отдельный раздел ниже
Практика: основы random
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки
Открыть практику →