Está en la página 1de 1

FUNDAMENTOS DE PROGRAMACIÓN.

Curso 2019/20 Versión


EXAMEN DE LA SEGUNDA CONVOCATORIA. (Python) 1.0.0

EJERCICIO
Sea un archivo CSV codificado en UTF-8 con información sobre estudiantes. Cada línea del archivo contiene
la siguiente información:
• sexo: de tipo str.
• creditos_restantes: total de créditos que le quedan para superar la titulación, de tipo float.
• asignaturas_obligatorias: número de asignaturas obligatorias aprobadas hasta el momento, de tipo int.
• asignaturas_aprobadas: número de asignaturas que ha aprobado hasta el momento, de tipo int.
• fecha_matricula: fecha de la última matrícula, de tipo date.
• nacionalidad: indica el país de origen del estudiante, de tipo str.
• dni: de tipo str.

Para almacenar en Python la información de cada una de las líneas se usará la siguiente definición de
namedtuple:

Estudiante = namedtuple('Estudiante', 'sexo, creditos_restantes,


asignaturas_obligatorias, asignaturas_aprobadas, fecha_matricula, nacionalidad, dni')

Cree un archivo estudiantes.py e incluya en él la definición del namedtuple anterior (recuerde que
debe importar namedtuple del módulo collections para poder utilizarlo). A continuación, implemente las
funciones que se le piden.
1. lee_estudiantes: recibe la ruta de un archivo CSV codificado en UTF-8 y devuelve una lista de tuplas de tipo
Estudiante conteniendo todos los datos almacenados en el archivo.
2. construye_lista_ordenada_fecha_matricula_sexo: recibe una lista de tuplas de tipo Estudiante y un
parámetro conjunto_sexo de tipo conjunto de str, y devuelve una lista ordenada de menor a mayor con
tuplas formadas por los valores de los campos fecha_matricula y asignaturas_obligatorias de los
estudiantes que cumplen que su campo sexo está contenido en el conjunto recibido como parámetro.
3. conjunto_fecha_matricula_mayores_asignaturas_obligatorias: recibe una lista de tuplas de tipo Estudiante,
un entero n y un parámetro nacionalidad de tipo str, y devuelve un conjunto con los valores del campo
fecha_matricula de los n estudiantes con mayor valor de asignaturas_obligatorias, de entre los que
cumplen que su campo nacionalidad es igual al parámetro nacionalidad. En caso de haber menos de n
estudiantes que cumplan la condición anterior, se incluirán todos los valores del campo fecha_matricula en
el conjunto devuelto.
4. agrupa_creditos_restantes_por_sexo: recibe una lista de tuplas de tipo Estudiante y un parámetro
conjunto_nacionalidad de tipo conjunto de str, y devuelve un diccionario que a cada valor de sexo le hace
corresponder un conjunto con los valores de creditos_restantes de los estudiantes con dicho valor de sexo,
de entre los que cumplen que su campo nacionalidad está contenido en el conjunto recibido como
parámetro.
5. nacionalidad_mas_frecuente: recibe una lista de tuplas de tipo Estudiante y devuelve el valor de
nacionalidad que aparece en un mayor número de estudiantes.
6. Cree un archivo test_estudiantes.py. Importe todas las funciones del módulo estudiantes. Cargue los datos
del archivo estudiantes.csv mediante la función lee_estudiantes y muestre en consola los datos leídos.
Incluya también llamadas a los métodos de tratamientos secuenciales implementados en los ejercicios
anteriores, mostrando los resultados en la consola.

También podría gustarte