random — генерація випадкових чисел¶
Цей модуль реалізує генератор псевдовипадкових чисел (ГПВЧ). ГПВЧ являє собою 32-бітний LCG у стилі Yasmarang; при першому імпорті він отримує одне 32-бітне початкове значення (seed) з того самого апаратного джерела, що й os.urandom(), а кожне наступне число є детермінованою функцією цього seed.
Попередження
Вивід не є криптографічно стійким — алгоритм є передбачуваним за короткою вихідною послідовністю, а початковий seed містить лише 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¶
Ініціалізує модуль генератора випадкових чисел із seed n, який має бути цілим числом. Якщо аргумент не передано (або передано
None), ГПВЧ повторно ініціалізується з того самого специфічного для порту джерела, яке використовуєos.urandom().
- random.choice(sequence: Any) Any¶
Вибирає та повертає один елемент випадковим чином із sequence (кортежу, списку або будь-якого об’єкта, що підтримує операцію індексування).