En esta lección se trata el uso de valores aleatorios mediante la biblioteca estándar random de Python.
La biblioteca random contiene una serie de funciones relacionadas con los valores aleatorios. El listado completo de funciones de esta biblioteca se describe en el manual de Python.
Como ocurre con todas las bibliotecas, antes de utilizar una función se debe importar la función o la biblioteca entera.
import random
print(random.randrange(10))
4
from random import randrange
print(randrange(10))
1
from random import randrange, choice
print(randrange(10))
print(choice(["uno", "dos", "tres"]))
5 dos
La función randint(a, b) genera un número entero entre a y b, ambos incluidos. a debe ser inferior o igual a b.
import random
print(random.randint(10, 20))
12
La función randrange(a, b, c) genera un número entero entre los valores generados por range(a, b, c). Como ocurre con range(), la función randrange() admite uno, dos o tres argumentos.
import random
print(random.randrange(10))
9
import random
print(random.randrange(10, 110))
61
import random
print(random.randrange(10, 110, 10))
80
La función random() genera un número decimal entre 0 y 1 (puede generar 0, pero no 1).
import random
print(random.random())
0.5310449231726346
La función uniform(a, b) genera un número decimal entre a y b (puede generar a y, debido a la forma de redondear de Python, puede que genere b o no).
import random
print(random.uniform(5, 8))
6.216950987513291
La función choice(secuencia) elige un valor al azar en un conjunto de elementos. Cualquier tipo de datos enumerable (tupla, lista, cadena, range) puede utilizarse como conjunto de elementos.
import random
print(random.choice((14, 15, 20, 150)))
14
import random
print(random.choice(["alfa", "beta", "gamma"]))
gamma
import random
print(random.choice("AEIOU"))
E
import random
print(random.choice(range(10)))
4
En el caso de conjuntos y diccionarios (que en Python 3 no son elementos iterables, sino iteradores), no se puede utilizar la función choice().
Por completar: contar cómo hacerlo (convirtiendo a listas o utilizando sample())