Un módulo, es un conjunto de funciones, métodos o constantes que podemos utilizar invocando previamente a la parte de código que las contienen. Una vez invocado el módulo y los elementos que necesitemos, pueden ser utilizados como parte de nuestro programa, como el resto de código.
El módulo random contiene funciones y métodos, que nos pueden ser muy útiles para obtener elementos aleatoriamente entre un conjunto de elementos donde se sorteen. Es especialmente útil para programar juegos.
randint (inicio,fin) Esta función perteneciente al módulo random, nos permite obtener números aleatorios comprendidos entre el primer argumento y el segundo (ambos incluidos).
from random import randint
for a in range(1,20):
valor_1= randint(1,6)
print (valor_1,end="-")
Posible resultado:
1-3-5-4-3-4-6-2-2-2-2-6-1-4-4-3-5-1-5-randrange (inicio, fin, salto) Función que nos facilita un número aleatorio comprendido entre inicio y fin. En este caso el segundo argumento nunca va a estar incluido en el resultado. El tercer argumento nos va a indicar que se deben de coger los candidatos a ser elegidos en saltos de 2, 3, 4…elementos.
Si no aparece el tercer argumento, puede ser candidato cualquier número de la secuencia. También se puede escribir esta función con un solo argumento, en cuyo caso los números candidatos irán desde el 0 hasta el anterior al argumento indicado (este argumento único nunca estará incluido).
from random import randrange
for a in range(1,15):
valor_2= randrange(102,1002,3)
print (valor_2, end="-")Posible resultado:
582-222-897-207-369-969-846-117-630-879-183-639-672-168-choice (lista) Este método extrae un elemento al azar de la lista que contiene como argumento.
rom random import choice
lista=[1,2,3,4,5,6,7,8,9,10]
for k in range (5):
print(choice(lista), end="-")Posible salida:
4-10-8-7-8-choices (lista, k=número_elementos) Este otro método es diferente al anterior. En lugar de obtener un solo elemento, podemos obtener una nueva lista aleatoria con un número determinado de elementos que indicaremos como segundo parámetro.
Vemos que choices está en plural. Los elementos que se eligen pueden repetirse. ¡¡Atención!!: Es importante incluir k=cantidad (no vale x=cantidad)
from random import choices
milista=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
nuevalista=choices(milista,k=12)
print(nuevalista)Posible resultado:
[8, 2, 15, 7, 2, 11, 4, 0, 14, 9, 12, 6]sample (lista, cantidad de elementos)
Con esta otra función también enfocada a listas, se obtiene una nueva lista formada por el número de elementos indicado como segundo argumento, a elegir de entre los elementos de la lista (primer argumento).
Esta función tiene dos particularidades:
- Los elementos elegidos nunca se van a repetir.
- Como consecuencia de lo anterior, no debemos añadir como segundo argumento una cantidad superior a los elementos que contiene la lista de salida.
from random import sample
lista=["a","b","c","d","e","f","g","h","i","j","k","l","m"]
for k in range (0,4):
elegidos=sample(lista,5) ##nueva lista con 5 elementos.
print(elegidos, end="-") Posible resultado (4 listas de 5 elementos cada una).
['k', 'e', 'j', 'h', 'i']-['b', 'k', 'm', 'i', 'a']-['i', 'm', 'd', 'c', 'f']-['c', 'a', 'm', 'j', 'i']-Como una cadena es en realidad una lista de caracteres, hubiésemos obtenido un resultado similar con:
from random import sample
cadena="abcdefghijklm"
for k in range (0,4):
elegidos=sample(cadena,5) ##nueva lista con 5 elementos.
print(elegidos, end="-") ['k', 'l', 'm', 'j', 'e']-['e', 'd', 'a', 'g', 'k']-['i', 'g', 'h', 'e', 'j']-['d', 'e', 'a', 'l', 'c']-
