En el siguiente tutorial busco poner en practica y explicar el uso de los ciclos for, Ifs listas y el manejo de strings al arrojar un resultado final.
Lo primero que tengo es un diccionario que 9 alumnos con distintas calificaciones. Lo que deseo saber es :
**1.- El diccionario de datos. **
estudiantes = [ { "nombre": "Jonathan", "apellido": "Jimenez", "calificacion": 6 }, { "nombre": "Martha", "apellido": "Diaz", "calificacion": 7 }, { "nombre": "Adriana", "apellido": "Diaz", "calificacion": 9 }, { "nombre": "Ruben", "apellido": "Diaz", "calificacion": 10 }, { "nombre": "Martina", "apellido": "Rios", "calificacion": 7 }, { "nombre": "Alberto", "apellido": "Sanchez", "calificacion": 3 }, { "nombre": "Ximena", "apellido": "Galvan", "calificacion": 8 }, { "nombre": "Monica", "apellido": "Alejo", "calificacion": 4 }, { "nombre": "Mario", "apellido": "Cornejo", "calificacion": 6 } ]
El Primer paso es crear las listas donde almacenare los datos y contendran listas de cada ciclo que vamos a recorrer
mejores_alumnos = [] mejores_promedios = [] mejores_nombres = [] bajos_nombres = [] bajos_alumnos = [] bajos_promedios = []
Ciclo For con Ifs anidados
En esta parte de mi codigo estoy recorriendo el la lista de estudiantes a traves de un ciclo for en donde, a través de un IF valido cuales de los alumnos tienes un promedio alto o bajo. Arriba de 7 para poder incluirlos en el listado de mejores alumnos, sino dentro bajos alumnos.
for element in estudiantes: if element['calificacion'] > 7: #print(element['nombre'], "=>", element['calificacion']) mejores_alumnos.append(element) else: #print(element['nombre'], "=>", element['calificacion']) bajos_alumnos.append(element)
Una vez agregado cada elemento correspondiente a su listado . A través de un list comprehension recorremos cada listado y sacamos las calificaciones de cada uno
#list comprehension mejores_promedios = [element['calificacion'] for element in mejores_alumnos] mejores_nombres = [element['nombre'] for element in mejores_alumnos] bajos_promedios = [element['calificacion'] for element in bajos_alumnos] bajos_nombres = [element['nombre'] for element in bajos_alumnos]
Finalmente imprimimos los mejores y Peopres promedios y sacamos el promedio dividiendo la suma de cada listado y lo dividimos entre la longitud.
`print("-----------")
print(“Mejores Promedios”)
print("-----------")
print(mejores_promedios)
print(“Menores Promedios”)
print("-----------")
print(bajos_promedios)`
mejores_average = sum(mejores_promedios) / len(mejores_promedios)
bajos_average = sum(bajos_promedios) / len(bajos_promedios)`
Finalmente imprimo un mensaje donde me muestra la informacion que necesito. Cuantos alumnos abajo de calificacion 7 son, su promedio general, y el nombre de cada uno de ellos
print("-----------") print(f’El promedio general de los mejores alumnos es {mejores_average} y son {len(mejores_alumnos)} alumnos: {mejores_nombres}’) print(f’El promedio general de los alumnos con promedios abajo de 7 es {bajos_average} y son {len(bajos_alumnos)} alumnos: alumnos: {bajos_nombres} ')