Глава 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 на практике