Python 3.6+secretsфункция
secrets.randbelow()
случайные числа
Возвращает криптографически стойкое случайное целое из диапазона [0, n) — n не включается.
Синтаксис
secrets.randbelow(exclusive_upper_bound) -> int
Верхняя граница не входит, как у range(), в отличие от random.randint(a, b), где включены обе. Нижней границы задать нельзя: для [a, b] пишут a + randbelow(b - a + 1). При n <= 0 будет ValueError. Подходит для одноразовых кодов: f'{secrets.randbelow(10**6):06d}'.
Примеры
import secrets
n = secrets.randbelow(10)
print(0 <= n < 10) # → True
code = f'{secrets.randbelow(10**6):06d}'
print(len(code)) # → 6
secrets.randbelow(0) # → ValueError: Upper bound must be positive.
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности