random — генерация случайных чисел¶
Этот модуль реализует генератор псевдослучайных чисел (PRNG). PRNG представляет собой 32-битный LCG в стиле Yasmarang; при первом импорте он берёт одно 32-битное начальное значение из того же аппаратного источника, который использует os.urandom(), и каждое последующее число является детерминированной функцией этого начального значения.
Предупреждение
Вывод не является криптографически стойким – алгоритм предсказуем по короткой последовательности вывода, а начальное значение несёт лишь 32 бита энтропии. Для ключевого материала, сессионных токенов, паролей с солью или любого другого применения, чувствительного к безопасности, вместо этого вызывайте os.urandom().
Примечание
Для интервалов используется следующая нотация:
() – это скобки открытого интервала, которые не включают свои концевые точки. Например, (0, 1) означает больше 0 и меньше 1. В теоретико-множественной нотации: (0, 1) = {x | 0 < x < 1}.
[] – это скобки закрытого интервала, которые включают все свои предельные точки. Например, [0, 1] означает больше или равно 0 и меньше или равно 1. В теоретико-множественной нотации: [0, 1] = {x | 0 <= x <= 1}.
Функции для целых чисел¶
- random.randrange(start: int, stop: int | None = None, step: int = 1) int¶
Первая форма возвращает случайное целое число из диапазона [0, stop). Вторая форма возвращает случайное целое число из диапазона [start, stop). Третья форма возвращает случайное целое число из диапазона [start, stop) с шагом step. Например, вызов
randrange(1, 10, 2)вернёт нечётные числа от 1 до 9 включительно.
Функции для чисел с плавающей точкой¶
Прочие функции¶
- random.seed(n: int | None = None, /) None¶
Инициализирует модуль генератора случайных чисел начальным значением n, которое должно быть целым числом. Когда аргумент не передан (или передано
None), PRNG повторно инициализируется из того же специфичного для порта источника, который используетos.urandom().
- random.choice(sequence: Any) Any¶
Выбирает и возвращает один элемент случайным образом из sequence (кортеж, список или любой объект, поддерживающий операцию индексации).