Глава 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, без установки