Número aleatorio en Python
Para generar números aleatorios en Python deberemos utilizar del módulo random de la biblioteca estándar.
Este módulo provee varias funciones para poder generar números aleatorios de distintas formas y con distintos parámetros.
Generar número aleatorio entre dos valores en Python
random()
La función random() devuelve un float entre 0.0 y 1.0.
import random
print(random.random())
randint(x, y)
Podremos generar un número aleatorio entero que se encuentre entre dos valores utilizando la función randint(). Como parámetros le enviaremos dos enteros. El resultado será un número aleatorio entre esos dos valores, ambos inclusive.
En el siguiente ejemplo generaremos un número entero aleatorio entre el 0 y el 10:
from random import randint
print(randint(0, 100))
randrange(x, y, step)
Podremos generar un número aleatorio entero que se encuentre entre dos valores y además que mantenga una distancia con el número generado anteriormente. Esta distancia de establece en el parámetro step.
from random import randrange
for i in range(10):
print(randrange(0,50,10))
uniform(x, y)
Esta función generará un número de tipo float aleatorio comprendido entre dos valores, ambos inclusive.
from random import uniform
for i in range(5):
print(uniform(0, 20))
Además, como parámetros, también podemos establecer valores de tipo float:
from random import uniform
for i in range(5):
print(uniform(0.2, 1.8))
Obtener elementos aleatorios de un conjunto de datos
choice()
La función choice() nos devolverá un elemento aleatorio de un conjunto de datos de tipo lista o tupla.
Ejemplo para una lista:
from random import choice
cars = ["Ford", "Volvo", "BMW"]
print(choice(cars))
Ejemplo para una tupla:
from random import choice
cars = ("Ford", "Volvo", "BMW")
print(choice(cars))
shuffle()
La función shuffle() pertenece también al módulo random, aunque realmente no genera un valor aleatorio o random. Lo que hace esta función es modificar el orden de los elementos en un conjunto de datos de tipo lista.
from random import shuffle
cars = ["Ford", "Volvo", "BMW"]
shuffle(cars)
print(cars)
sample(data, x)
La función sample() de random devuelve x números de elementos de un conjunto de datos (lista o tupla) de forma aleatoria.
Ejemplo para una lista:
from random import sample
cars = ["Ford", "Volvo", "BMW"]
print(sample(cars, 2))
Ejemplo para una tupla:
from random import sample
cars = ("Ford", "Volvo", "BMW")
print(sample(cars, 2))
Es importante tener en cuenta que el segundo parámetro no debe contener un valor mayor al del tamaño de la lista.