Sesión 6

En esta sexta sesión hemos conocido el módulo math y profundizado sobre la generación de resultados aleatorios mediante el módulo random y el uso de listas.

Concretamente los contenidos tratados han sido:

  • Generación aleatoria de un valor perteneciente a una lista de valores.
  • Uso de la función choice perteneciente al módulo random.
  • Uso de la función shuffle perteneciente al módulo random.
  • Uso del módulo math.
  • Uso de la función sqrt perteneciente al módulo math.
  • Uso de la función gcd perteneciente al módulo math.

Vamos a ver los programas que los alumnos han desarrollado durante esta sesión:

Programa 1:

Vamos a realizar un programa que elija de manera aleatoria un nombre dentro de una lista de nombres. El programa simulará un sorteo entre varios participantes.

Este programa lo hemos realizado de 2 formas diferentes, la primera ha sido usando la función randint y la segunda con el uso de la función choice. Ambas funciones se encuentran en el módulo random.

  • En primer lugar el programa debe mostrar los nombres incluidos en la lista de nombres.
  • A continuación debe mostrar un mensaje indicando que se pulse la tecla intro para continuar y mostrar el nombre elegido.
  • Por último mostrar el nombre generado aleatoriamente.

Una posible ejecución del programa podría ser la siguiente imagen:

Programa 2:

El segundo programa consiste en realizar una ronda de emparejamiento aleatorio de una lista de nombres.

El programa hará lo siguiente:

  • En primer lugar mostrará los nombres según se encuentran incluidos en la lista.
  • El programa barajará la lista de nombres, y una vez barajados los nombres, volverá a mostrarlos.
  • A continuación emparejará al primero con el segundo, al tercero con el cuarto, al quinto con el sexto, …

El resultado del programa podría ser algo similar a la imagen siguiente:

Este programa en primer lugar lo hemos realizado para los 10 elementos de esta lista, posteriormente lo hemos generalizado para una lista cualquiera con un número de elementos pares.

Programa 3:

Antes de comenzar con este nuevo programa, hemos visto por encima las posibles funciones que incluye el módulo math, y aunque muchas de estas funciones aún no tienen sentido para estos alumnos, existen algunas funciones que sí tienen aplicación con sus conocimientos matemáticos.

En este tercer programa vamos a calcular el máximo común divisor y el mínimo común múltiplo de 2 números que el programa solicitará al usuario. Para realizar el programa utilizaremos la función gcd (cálculo de máximo común divisor) y nos apoyaremos en la propiedad:

M.C.D.(x,y)*m.c.m.(x,y)=x*y

El programa hará lo siguiente:

  • Mostrará un mensaje indicando la funcionalidad del programa.
  • Pedirá al usuario que introduzca 2 números.
  • Calculará el Máximo Común Divisor y el mínimo común múltiplo de los números introducidos.

La ejecución del programa podría mostrar algo similar a la siguiente imagen:

Programa 4:

Como 4 actividad de esta sesión, hemos realizado un programa que a partir del número del Documento Nacional de Identidad, calcule la letra del NIF.

Hemos entrado en la página del Ministerio de Interior y hemos consultado el algoritmo de cálculo con la tabla de equivalencias correspondiente.

El programa debe hacer lo siguiente:

  • Mostrar un mensaje informativo de la funcionalidad del programa.
  • Solicitar que introduzca el número del dni del usuario.
  • Calcular la letra correspondiente según el método explicado anteriormente.

La ejecución del programa podría ser algo similar a la imagen siguiente:

Este programa lo hemos resuelto de varias formas:

  • La primera ha sido usando una larga secuencia de 23 bloques condicionales if.
  • La segunda forma ha sido mediante una lista con los valores de la tabla.
  • En la tercera forma en lugar de usar una lista, hemos usado una cadena de caracteres con la secuencia de la tabla.

La sesión la hemos terminado introduciendo el concepto de diccionarios en Python y haciendo un simple ejemplo de su utilización.