REVIT ARCHITECTURE (953) – PYTHON – Funciones (37) – Tuplas y diccionarios (9) Trabajo conjunto de Tuplas y Diccionarios

Las tuplas y los diccionarios pueden trabajar juntos. En el siguiente ejemplo se puede ver cómo las tuplas y los diccionarios pueden trabajar en conjunto.

El siguiente problema que se presenta es:

Necesitas un programa para evaluar el promedio de calificaciones de los estudiantes.
El programa debe solicitar el nombre del estudiante, seguido de su única calificación.
Los nombres pueden ingresarse en cualquier orden.
Ingresar un nombre vacío finaliza la entrada de datos (ingresar una calificación vacía generará una excepción ValueError.
Luego, la salida será una lista de todos los nombres junto con el promedio de calificaciones.

La siguiente función proporcionada es un programa en Python que permite ingresar los nombres de los estudiantes junto con sus calificaciones, almacenarlos en un diccionario, y luego calcular y mostrar el promedio de las calificaciones de cada estudiante.

7422

Ahora, se va a proceder a analizar el código línea por línea:

Inicialización

Se crea un diccionario vacío llamado school_class. Este diccionario se utilizará para almacenar los nombres de los estudiantes como claves y sus calificaciones como valores, que serán almacenadas en tuplas (todas las calificaciones asociadas se almacenan en una tupla (la tupla puede ser un valor de diccionario; eso no es un problema en absoluto).

Bucle para Entrada de Datos:

El programa entra en un bucle infinito (while True) que solicitará continuamente al usuario que ingrese el nombre de un estudiante.
Si el usuario ingresa una cadena vacía (»), el bucle se rompe y se deja de solicitar más nombres, lo que finaliza la entrada de datos.

Línea 4: aquí se lee el nombre del estudiante.
Líneas 5-6: si el nombre es una cadena vacía («»), se sale del bucle.

7423

Ingreso y Validación de la Calificación:

Una vez ingresado el nombre, el programa solicita la calificación del estudiante, que debe ser un número entero entre 0 y 10.
Si la calificación ingresada no está dentro del rango válido, el programa termina el bucle, deteniendo el proceso.

Línea 8: se pide una de las calificaciones del estudiante (un entero del rango 0-10).
Líneas 9-10: si la calificación ingresada no está dentro del rango de 0 a 10, se sale del bucle.

7424

Almacenamiento de la Calificación en el Diccionario:

El programa verifica si el nombre del estudiante ya existe en el diccionario school_class.
Si el nombre ya está en el diccionario, se agrega la nueva calificación a la tupla existente asociada con ese nombre usando el operador +=.
Si el nombre no está en el diccionario, se crea una nueva entrada con el nombre como clave y una tupla que contiene la calificación como valor.
Líneas 12-13: si el nombre del estudiante ya está en el diccionario, se alarga la tupla asociada con la nueva calificación (nota el operador +=).
Líneas 14-15: si se trata de un nuevo estudiante (desconocido para el diccionario), se crea una nueva entrada; su valor es una tupla de un solo elemento que contiene la calificación ingresada.

7425

Cálculo y Visualización del Promedio de Calificaciones:

Una vez ingresados todos los datos, el programa recorre los nombres de los estudiantes en orden alfabético (sorted(school_class.keys())).

Línea 17: se itera a través de los nombres de los estudiantes ordenados.
Para cada estudiante, se inicializan dos variables: adding (para la suma de las calificaciones) y counter (para contar cuántas calificaciones tiene el estudiante).

Líneas 18-19: se inicializan los datos necesarios para evaluar el promedio (suma y contador).
Luego, el programa suma todas las calificaciones del estudiante y cuenta cuántas son.

Líneas 20-22: iteramos a través de la tupla, tomando todas las calificaciones subsecuentes y actualizando la suma junto con el contador.
Finalmente, se calcula el promedio dividiendo la suma de las calificaciones por el número de calificaciones y se imprime el nombre del estudiante junto con su promedio.

Línea 23: se evalúa e imprime el nombre del estudiante y el promedio de calificaciones.

7426

Para comprobar la función se va a realizar una introducción de datos:

7427

Inicialización del Diccionario:

Se crea un diccionario vacío school_class que almacenará los nombres de los estudiantes como claves y sus calificaciones como valores en forma de tuplas.

# Simular la entrada de datos de los estudiantes y sus calificaciones
inputs = [
(«Lourdes», 9),
(«Juan», 2),
(«Marco», 2),
(«Jesus», 3)

]
Enter the student’s score (0-10): 9
Enter the student’s name: Juan
Enter the student’s score (0-10): 2
Enter the student’s name: Marco
Enter the student’s score (0-10): 2
Enter the student’s name: Jesus Enter the student’s score (0-10): 3

Salida del programa:

7428

Ahora se va a realizar otro ejemplo donde cada estudiante tiene varias notas, de forma que la función realizará el promedio de las mismas:

Enter the student’s name: Juan
Enter the student’s score (0-10): 2 + 3+ 3
Enter the student’s name: Marco
Enter the student’s score (0-10): 2 +3 + 4
Enter the student’s name: Jesus

Enter the student’s score (0-10): 3 +2+ 2

7429

La salida de datos es la siguiente:

7430

Licencia Creative Commons Contenido Web de Yolanda Muriel está sujeto bajo Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.

Deja un comentario