Saltar al contenido

Cómo usar el módulo aleatorio en Python

Visión general

En esta publicación, me gustaría describir el uso del módulo aleatorio en Python. El módulo aleatorio proporciona acceso a funciones que admiten muchas operaciones. Quizás lo más importante es que te permite generar números aleatorios.

¿Cuándo usarlo?

Queremos que la computadora elija un número aleatorio en un rango dado Elija un elemento aleatorio de una lista, elija una carta aleatoria de una baraja, lance una moneda, etc. Al hacer que su base de datos de contraseñas sea más segura o al activar una función de página aleatoria de su sitio web .

Funciones aleatorias

El módulo Random contiene algunas funciones muy útiles.

Randint

Si quisiéramos un número entero aleatorio, podemos usar la función randint. Randint acepta dos parámetros: un número más bajo y uno más alto. Genera enteros entre 1,5. El primer valor debe ser menor que el segundo.

import random
print random.randint(0, 5)

Esto generará 1, 2, 3, 4 o 5.

Aleatorio

Si desea un número mayor, puede multiplicarlo.

Por ejemplo, un número aleatorio entre 0 y 100:

import random
random.random() * 100

Elección

Genere un valor aleatorio a partir de la secuencia de secuencia.

random.choice( ['red', 'black', 'green'] ).

La función de elección se puede utilizar a menudo para elegir un elemento aleatorio de una lista.

import random
myList = [2, 109, False, 10, "Lorem", 482, "Ipsum"]
random.choice(myList)

Barajar

La función de barajar, baraja los elementos de la lista en su lugar, por lo que están en un orden aleatorio.

random.shuffle (lista) Ejemplo tomado de esta publicación en Desbordamiento de pila

from random import shuffle
x = [[i] for i in range(10)]
shuffle(x)
Output:
# print x  gives  [[9], [2], [7], [0], [4], [5], [3], [1], [8], [6]]
# of course your results will vary

Randrange

Genere un elemento seleccionado al azar del rango (inicio, parada, paso)

random.randrange(start, stop[, step])
import random
for i in range(3):
    print random.randrange(0, 101, 5)

Ejemplo de código

Veamos este ejemplo (copiado de Doug Hellmann PYMOTW)

import random
import itertools

outcomes = { 'heads':0,
             'tails':0,
             }
sides = outcomes.keys()

for i in range(10000):
    outcomes[ random.choice(sides) ] += 1

print 'Heads:', outcomes['heads']
print 'Tails:', outcomes['tails']

Solo se permiten dos resultados, por lo que en lugar de usar números y convertirlos, las palabras “cara” y “cruz” se utilizan con choice ().

Los resultados se tabulan en un diccionario utilizando los nombres de los resultados como claves.

Entrenamiento de Python recomendado

Para el entrenamiento de Python, nuestra principal recomendación es DataCamp.

$ python random_choice.py

Heads: 4984
Tails: 5016

Más información

http://en.wikibooks.org/wiki/Choose_Your_Own_Pyventure/Random_and_PRNGs
http://docs.python.org/2/library/random.html
http://www.cs.swarthmore.edu/~adanner/cs21/f09/randomlib.php

Entrenamiento de Python recomendado

Para el entrenamiento de Python, nuestra principal recomendación es DataCamp.