jueves, 4 de agosto de 2016

Progamación Python XII (números aleatorios)

Este es otro post dedicado a programación en Python, encontraréis todos los posts de este tipo juntos en el apartado Programación del blog. Y si queréis aprender más podéis visitar la web oficial de www.python.org

En este post vamos a ver como obtener números aleatorios con python. Para ello vamos a necesitar importar módulos, tal y como vimos en un post anterior.





1 Módulo para obtener números aleatorios (random)



En Python podemos usar el módulo random para obtener lo que se define como números aleatorios, este módulo dispone de varios métodos, pero solo vamos a ver los más comunes. Para más información podéis visitar la web de referencia de python

https://docs.python.org/3/library/random.html#module-random


1.1 Números aleatorios con randint()



randint(inicio,fin) nos permite obtener un número aleatorio dentro de un rango de números (que podemos especificar), veamos un ejemplo

# importamos en modulo random
import random
# guardamos en una variable el numero aleatorio obtenido
numero_a=random.randint(1,6)
# mostramos por pantalla el numero aleatorio obtenido
print(numero_a)

en este ejemplo obtendremos un número aleatorio comprendido entre 1 y 6 (ambos incluidos).



1.2 Números aleatorios con randrange()



randrange(inicio,fin,salto) también nos permite obtener un número aleatorio dentro de un rango de números (que podemos especificar) pero además le podemos añadir un tercer parámetro (opcional) que es un valor de salto para el rango que hemos definido, mirad este ejemplo

# importamos el modulo random
import random
# guardamos en una variable el numero aleatorio obtenido
numero_a=random.randrange(1,12,2)
# mostramos por pantalla el numero aleatorio obtenido
print(numero_a)

en este caso obtendremos un número aleatorio entre 1 (valor incluido) y 12 (valor no incluido), con un salto de 2, de forma que los posibles valores que podemos obtener son:
1, 3, 5, 7, 9, 11.

en el siguiente ejemplo los posibles valores que podemos obtener son: 0, 2, 4, 6, 8, 10

# importamos en modulo random
import random
# guardamos en una variable el numero aleatorio obtenido
numero_a=random.randrange(0,11,2)
# mostramos por pantalla el numero aleatorio obtenido
print(numero_a)


1.3 Números aleatorios con random()



random() nos devuelve un número aleatorio de punto flotante (decimal) entre 0,0 y 0,1.
Veamos un ejemplo

# importamos el modulo random
import random
# guardamos en una variable el numero aleatorio obtenido
numero_a=random.random()
# mostramos por pantalla el numero aleatorio obtenido
print(numero_a)

veréis como por pantalla aparece un número decimal, podéis multiplicar el resultado *10, *100, *1000, etc para obtener un número entero si así lo queréis.


1.4 Números aleatorios con uniform() 



uniform(inicio,fin) también nos devuelve un número aleatorio de punto flotante (decimal) dentro de un rango especificado por nosotros. Veamos un ejemplo

# importamos el modulo random
import random
# guardamos en una variable el numero aleatorio obtenido
numero_a=random.uniform(1,2)
# mostramos por pantalla el numero aleatorio obtenido
print(numero_a)

veréis como por pantalla aparece un número decimal entre 1 y 2, podéis multiplicar el resultado *10, *100, *1000, etc para obtener un número mayor si así lo queréis.

1.5 Números aleatorios de una lista choice()


choice(cadena o lista) puede ser utilizado de dos formas la primera nos permite obtener aleatoriamente un elemento de una cadena definida, pasada como parámetro, que puede estar formada por números, letras, o una combinación de estos, etc. Mirad este ejemplo

# importamos el modulo random
import random
# guardamos en una variable el valor aleatorio obtenido
numero_a=random.choice('0a1b2c3d4e5f6g7h8i9')
# mostramos por pantalla el valor aleatorio obtenido
print(numero_a)

la segunda forma de uso es pasar una lista de elementos como parámetro, mirad el siguiente ejemplo

# importamos el modulo random
import random
# guardamos en una variable el valor aleatorio obtenido
numero_a=random.choice(['1','2','3','4','a','b','c','d'])
# mostramos por pantalla el valor aleatorio obtenido
print(numero_a)


1.6 Generar un orden aleatorio para una lista de valores shuflle()



shuffle(lista) permite cambiar de forma aleatoria los elementos de una lista enviada y también se pude usar para obtener números aleatorios. Mirad este ejemplo

# importamos el modulo random
import random
# guardamos en una variable una lista de elementos
lista=[1,2,3,4,5,6,7,8,9,0]
# modificamos el orden de los elementos
random.shuffle(lista)
# mostramos por pantalla el nuevo orden de los elementos
print(lista)


random dispone de muchas otras opciones, espero que estas os sirvan para empezar.