Módulo random de Python

Python randomEl módulo se utiliza principalmente para generar números aleatorios.

randomEl módulo implementa generadores de números pseudoaleatorios con varias distribuciones.

Para usarrandomla función, primero debe importarse:

import random

Ver el contenido del módulo random:

Ejemplo

>>> import random
>>> dir(random)
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_Sequence', '_Set', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_accumulate', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_floor', '_inst', '_log', '_os', '_pi', '_random', '_repeat', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 'paretovariate', 'randbytes', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']

A continuación usamosrandom()el método devuelve un número aleatorio, que está enel intervalo semiabierto [0,1)dentro del rango, incluye 0 pero no incluye 1.

Ejemplo

# Importar el paquete random
import random

# Generar un número aleatorio
print(random.random())

El resultado del ejemplo anterior es:

0.4784904215869241

seed()El método cambia la semilla del generador de números aleatorios. Puedes llamar a esta función antes de invocar otras funciones del módulo random.

Ejemplo

#!/usr/bin/python3
import random

random.seed()
print ("Generar números aleatorios con la semilla predeterminada:", random.random())
print ("Generar números aleatorios con la semilla predeterminada:", random.random())

random.seed(10)
print ("Generar números aleatorios con la semilla entera 10:", random.random())
random.seed(10)
print ("Generar números aleatorios con la semilla entera 10:", random.random())

random.seed("hello",2)
print ("Generar números aleatorios con una semilla de cadena:", random.random())

Después de ejecutar el ejemplo anterior, el resultado es:

使用默认种子生成随机数: 0.7908102856355441
使用默认种子生成随机数: 0.81038961519195
使用整数 10 种子生成随机数: 0.5714025946899135
使用整数 10 种子生成随机数: 0.5714025946899135
使用字符串种子生成随机数: 0.3537754404730722

Métodos del módulo random

Los métodos del módulo random son los siguientes:

Método Descripción
seed() Inicializa el generador de números aleatorios
getstate() Devuelve un objeto que captura el estado interno actual del generador.
setstate() state debe obtenerse de una llamada anterior a getstate(), y setstate() restaura el estado interno del generador al estado en el momento en que se llamó a getstate().
getrandbits(k) Devuelve un entero Python no negativo con k bits aleatorios. Este método se proporciona con el generador MersenneTwister, y algunos otros generadores también pueden proporcionarlo como parte opcional de su API. Cuando sea posible, getrandbits() habilita randrange() para manejar intervalos arbitrariamente grandes.
randrange() Devuelve un elemento seleccionado aleatoriamente de range(start, stop, step).
randint(a, b) Devuelve un entero aleatorio N que satisface a <= N <= b.
choice(seq) Devuelve un elemento aleatorio de la secuencia no vacía seq. Si seq está vacía, lanza IndexError.
choices(population, weights=None, *, cum_weights=None, k=1) Selecciona con reemplazo de population y devuelve una lista de elementos de tamaño k. Si population está vacía, lanza IndexError.
shuffle(x[, random]) Mezcla aleatoriamente las posiciones de la secuencia x.
sample(population, k, *, counts=None) Devuelve una lista de longitud k de elementos únicos seleccionados de la secuencia o conjunto de la población. Se usa para muestreo aleatorio sin repetición.
random() Devuelve el siguiente número flotante aleatorio en el rango [0.0, 1.0).
uniform() Devuelve un número flotante aleatorio N, tal que a <= N <= b cuando a <= b, y b <= N <= a cuando b < a.
triangular(low, high, mode) Devuelve un número flotante aleatorio N, tal que low <= N <= high y usa el mode especificado entre estos límites. Los límites low y high son cero y uno por defecto. El parámetro mode tiene como valor predeterminado el punto medio entre los límites, lo que da una distribución simétrica.
betavariate(alpha, beta) Distribución beta. La condición para los parámetros es alpha > 0 y beta > 0. El rango del valor devuelto está entre 0 y 1.
expovariate(lambd) Distribución exponencial. lambd es 1.0 dividido por la media deseada, y debe ser distinto de cero.
gammavariate() Distribución gamma (no la función gamma). La condición para los parámetros es alpha > 0 y beta > 0.
gauss(mu, sigma) Distribución normal, también llamada distribución gaussiana. mu es la media y sigma es la desviación estándar. Esta función es un poco más rápida que la función normalvariate() definida a continuación.
lognormvariate(mu, sigma) Distribución lognormal. Si tomas el logaritmo natural de esta distribución, obtendrás una distribución normal con media mu y desviación estándar sigma. mu puede ser cualquier valor; sigma debe ser mayor que cero.
normalvariate(mu, sigma) Distribución normal. mu es la media, sigma es la desviación estándar.
vonmisesvariate(mu, kappa) Distribución de von Mises. mu es el ángulo medio, expresado en radianes, entre 0 y 2*pi; kappa es el parámetro de concentración, que debe ser mayor o igual que cero. Si kappa es igual a cero, esta distribución se reduce a un ángulo aleatorio uniforme en el rango de 0 a 2*pi.
paretovariate(alpha) Distribución de Pareto. alpha es el parámetro de forma.
weibullvariate(alpha, beta) Distribución de Weibull. alpha es el parámetro de escala, beta es el parámetro de forma.
Otras extensiones