Anàlisi de les notes

Disposem d’un fitxer on hem anat guardant les notes dels diferents actes avaluació d’una assignatura. El fitxer té una primera línia amb el nom de l’assignatura i una segona línia separadora. De la tercera línia fins a la darrera tindran els camps següents:

Nom de l’estudiant

Una sèrie de floats entre 0.0 i 10.0 que representaren les notes que han tret dels diferents actes d’avaluació realitzats.

No tots els estudiants han fet el mateix nombre de proves, per tant, el nombre de notes pot ser diferent segons la línia del fitxer. Les dades de cada línia estan separades pel caràcter ':'. Vegeu, per exemple, el fitxer notes.txt:

Informatica
===========
Ramon:8.9:9.9:10.0:5.0:6.9
Rosa:10.0:10.0
Mireia:8.9:7.9:6.8
Aleix:5.6:6.5:8.1:4.0:3.0
Tresa:3.8:2.9
Enric:7.8:6.9:9.0
Maria:8.9:9.9:7.0:5.0:6.9
Roser:10.0:10.0:8.9
Peret:8.9:7.9:6.8:5.5:5.9:8.8:5.7:9.2
Joan:5.6:4.5:8.1:4.2

Es demana fer la funció

notes.classifica(nom_fitxer, nmin_ava)

que a partir del nom d’un fitxer de les característiques anteriors i d’un enter que sigui el nombre mínim d’avaluacions que ha de tenir un estudiant, calculi i retorni una llista. La llista contindrà tuples segons la següent descripció:

  • Hi haurà una tupla per a cada estudiant que tingui un nombre de notes més gran o igual a nmin_ava.

  • Cada tupla contindrà el nom de l’estudiant i la nota mitjana arrodonida amb dos decimals.

A més es demana que la llista estigui ordenada de manera decreixent en funció de la nota mitjana de l’estudiant. Es recomana fer una funció que calculi la nota mitjana d’un estudiant a partir d’un string com el que hi ha en una línia del fitxer anteriorment descrit.

>>> classifica('notes.txt', 4)
[('Ramon', 8.14), ('Maria', 7.54), ('Peret', 7.34), ('Joan', 5.6), ('Aleix', 5.44)]

>>> classifica('notes.txt', 6)
[('Peret', 7.34)]

>>> classifica('notes.txt', 1)
[('Rosa', 10.0), ('Roser', 9.63), ('Ramon', 8.14), ('Enric', 7.9), ('Mireia', 7.87), ('Maria', 7.54), ('Peret', 7.34), ('Joan', 5.6), ('Aleix', 5.44), ('Tresa', 3.35)]

Desa la funció al fitxer notes.py. Pots descarregar un joc de proves a test-notes.txt.