Se tiene un diccionario carreras
que tiene como clave el nombre de una carrera y como contenido una lista de materias. Por ejemplo, podemos tener:
carreras = {
“música”: [“historia”, “piano 1”, “piano 2”, “guitarra”, “composición”],
“pintura”: [“historia”, “dibujo 1”, “dibujo 2”, “pintura 1”, “pintura 2”]
}
Se tiene también un diccionario alumnos
, cuya clave es el legajo y como datos una tupla con nombre, lista de carreras en las que está inscripto y un diccionario con clave nombre de la materia y lista de notas (puede aparecer más de una nota solamente si el alumno no aprobó la materia la primera vez). Por ejemplo:
alumnos = {
1000: ("Ana", ["música", "pintura"], {"historia": [2, 10], "piano 1": [8], "piano 2": [2]}),
2000: ("Juan", ["pintura"], {"historia": [6], "dibujo 1": [8], "pintura 1": [2, 7], "dibujo 2": [2]})
}
-
Para ayudar al Departamento de Alumnos se debe escribir una función Python
que_le_falta
que recibe los diccionarios carreras y alumnos, un número de legajo y una carrera como datos, y devuelve una lista con las materias que le faltan a ese legajo para completar esa carrera.Si la carrera no existe se debe lanzar la excepción
CarreraDesconocidaError
(definirla adecuadamente). Si el legajo no existe se debe lanzar la excepciónLegajoDesconocidoError
(definirla adecuadamente).Por ejemplo, con los diccionarios anteriores, el legajo 1000 y la carrera "música" se debe devolver la lista:
[“piano 2”, “guitarra”, “composición”] # ¿Qué le falta a Ana para completar la carrera “música”?
-
Escribir una función
guardar_carreras_en_disco
que recibe un diccionario carreras y un nombre de archivo y guarda el diccionario de carreras en el archivo indicado. -
Escribir una función
recuperar_carreras_de_disco
que recibe un nombre de archivo y recupera el diccionario carreras a partir del archivo indicado.