random — generación de números aleatorios¶
Este módulo implementa un generador de números pseudoaleatorios (PRNG). El PRNG es un LCG de 32 bits de estilo Yasmarang; en la primera importación obtiene una semilla de 32 bits de la misma fuente de hardware que utiliza os.urandom(), y cada número posterior es una función determinista de esa semilla.
Advertencia
La salida no es criptográficamente segura: el algoritmo es predecible a partir de una secuencia de salida corta, y la semilla inicial solo aporta 32 bits de entropía. Para material de claves, tokens de sesión, sales de contraseñas o cualquier otro uso sensible a la seguridad, llame a os.urandom() en su lugar.
Nota
Se utiliza la siguiente notación para los intervalos:
() son corchetes de intervalo abierto y no incluyen sus extremos. Por ejemplo, (0, 1) significa mayor que 0 y menor que 1. En notación de conjuntos: (0, 1) = {x | 0 < x < 1}.
[] son corchetes de intervalo cerrado que incluyen todos sus puntos límite. Por ejemplo, [0, 1] significa mayor o igual que 0 y menor o igual que 1. En notación de conjuntos: [0, 1] = {x | 0 <= x <= 1}.
Funciones para enteros¶
- random.randrange(start: int, stop: int | None = None, step: int = 1) int¶
La primera forma devuelve un entero aleatorio del rango [0, stop). La segunda forma devuelve un entero aleatorio del rango [start, stop). La tercera forma devuelve un entero aleatorio del rango [start, stop) en pasos de step. Por ejemplo, llamar a
randrange(1, 10, 2)devolverá números impares entre 1 y 9 inclusive.
Funciones para números de coma flotante¶
Otras funciones¶
- random.seed(n: int | None = None, /) None¶
Inicializa el módulo generador de números aleatorios con la semilla n, que debe ser un entero. Cuando no se pasa ningún argumento (o
None), el PRNG se vuelve a sembrar desde la misma fuente específica del puerto que utilizaos.urandom().
- random.choice(sequence: Any) Any¶
Elige y devuelve un elemento al azar de sequence (tupla, lista o cualquier objeto que admita la operación de subíndice).