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.

import random

print(random.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.

import random

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

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

print(random.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).

import random

print(random.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, debido a la forma de redondear de Python, puede que genere b o no).

import random

print(random.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.

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