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']
>>> 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())
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())
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. |