Valores aleatorios: la biblioteca random

En esta lección se trata el uso de valores aleatorios mediante la biblioteca estándar random de Python.

La biblioteca random

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.

Generar números enteros: la función randint()

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.

from random import randint

print(randint(10, 20))
12

Generar números enteros: la función randrange()

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.

from random import randrange

print(randrange(10))
9
from random import randrange

print(randrange(10, 110))
61
from random import randrange

print(randrange(10, 110, 10))
80

Generar números decimales: la función random()

La función random() genera un número decimal entre 0 y 1 (puede generar 0, pero no 1).

from random import random

print(random())
0.5310449231726346

Generar números decimales: la función uniform()

La función uniform(a, b) genera un número decimal entre a y b (puede generar a y, dependiendo del tipo de redondeo de Python, puede que genere b).

from random import uniform

print(uniform(5, 8))
6.216950987513291

Seleccionar un elemento al azar: la función choice()

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.

from random import choice

print(choice((14, 15, 20, 150)))
14
from random import choice

print(choice([14, 15, 20, 150]))
150
from random import choice

print(choice("AEIOU"))
E
from random import choice

print((choice(range(10))))
14

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())