Saltar al contenido

python

Generar números aleatorios en Python

Descubre cómo generar números aleatorios en Python usando las principales funciones del módulo random: randint(), randrange(), random(), uniform() ...

Generar números aleatorios en Python

Para generar números aleatorios en Python se hace uso del módulo random de la biblioteca estándar. Este módulo ofrece una serie de funciones que generan números aleatorios de manera diferente. En este artículo repasaremos cuáles son las principales funciones y sus usos.

Generar números aleatorios entre dos valores en Python

randint(a, b)

Para generar números aleatorios en Python de valor entero, se suele utilizar la función randint(). La función randint(a, b) devuelve un número entero comprendido entre a y b (ambos inclusive) de forma aleatoria. Ejemplos útiles de esta función: determinar quién comienza una partida (jugador/PC); simular el dado del parchís, etc:

import random

# ¿Quién comienza?

comienza = random.randint(0, 1)
if comienza == 0:
    print('Comienza el jugador')
else:
    print('Comienza el PC')

# Número aleatorio del parchís
numero = random.randint(1, 6)

randrange(a, b, salto)

La función randrange(a, b, salto) genera números enteros aleatorios comprendidos entre a y b separados entre sí con un salto. Por ejemplo, randrange(5, 27, 4) obtendría un valor aleatorio de entre los siguientes posibles: 5, 9, 13, 17, 21, 25.

>>> import random

>>> for i in range(10):
...     print(random.randrange(5, 27, 4))
...     

17
13
5
17
13
25
9
5

random()

La función random() devuelve un float comprendido entre [0.0 y 1.0)

>>> import random

>>> for i in range(5):
...     print(random.random())
...     
0.6355590910913725
0.38870490605141683
0.3757381647176976
0.38770694501889935
0.22472067642268556

uniform(a, b)

La función uniform(a, b) devuelve un float aleatorio comprendido entre a y b (ambos inclusive).

>>> import random

>>> for i in range(5):
...     print(random.uniform(100, 200))
...     
170.3543065193162
103.47025653056637
126.52588283656675
169.60671144065486
145.21872629322894

Obtener elementos aleatorios de una secuencia

Hasta ahora hemos visto cómo obtener números aleatorios en Python. A continuación veremos que también es posible obtener elementos aleatorios de una secuencia.

choice()

La función choice(sec) devuelve un elemento aleatorio de una secuencia. Es muy útil cuando hay que elegir al azar un elemento de entre un conjunto.

>>> import random

>>> frutas = ['peras', 'manzanas', 'plátanos', 'ciruelas']
>>> for i in range(3):
...     print(random.choice(frutas))
...     
peras
ciruelas
plátanos

shuffle()

La función shuffle(sec) modifica el orden de los elementos de una lista. Esta función se asemeja a la acción de mezclar una baraja.

>>> import random

>>> baraja = [1, 2, 3, 4, 5, 6, 7, 10, 11, 12]
>>> for i in range(3):
...     random.shuffle(baraja)
...     print(baraja)
...     
[11, 3, 2, 6, 12, 10, 5, 4, 1, 7]
[7, 3, 1, 10, 6, 12, 2, 11, 5, 4]
[1, 11, 3, 2, 4, 12, 5, 10, 7, 6]

sample()

La última función que veremos es sample(sec, num). Esta función devuelve num elementos aleatorios de la secuencia sec. Siguiendo con el ejemplo de la baraja, sería similar a la acción de repartir num cartas a un jugador.

>>> import random

>>> baraja = [1, 2, 3, 4, 5, 6, 7, 10, 11, 12]
>>> random.sample(baraja, 5)
[2, 1, 4, 11, 12]

Newsletter EstrategIA

Programar con IA sin perder el control

Si te ha interesado este artículo, esto también te va a interesar. Cada dos martes te cuento qué funciona y qué no al construir software con agentes de IA, con ejemplos reales de mi software factory y los números de mis proyectos, sin maquillar.

9.277 desarrolladores y profesionales ya la leen martes quincenales

EstrategIA Próximo número · martes

Lo que recibes

  1. Qué funciona (y qué no) programando con agentes de IA
  2. Casos reales de MaIA y DGC: decisiones, errores y resultados
  3. Los números de mis proyectos, sin maquillar
  4. Una idea que puedes aplicar esa misma semana

Sin spam. Te das de baja con un clic.

j2logo

Sigue leyendo

Listar directorio en Python
python

Listar directorio en Python. Listar ficheros de un directorio

requests - Hacer peticiones http en Python
python

Python requests. La librería para hacer peticiones http en Python

Web scraping con Python. Guía de inicio a BeautifulSoup
python

Web scraping con Python. Extraer datos de una web. Guía de inicio de Beautiful Soup

Tutorial de SQLAlchemy
python

SQLAlchemy. Tutorial de Python SQLAlchemy. Guía de inicio