Notes excel·lents 2¶
Es disposa d’un diccionari d’estudiants on la clau és el nom d’un estudiant i el valor és una llista amb 5 reals corresponents a les notes de les 5 assignatures de primer i un altre real corresponent a la mitjana de les notes. També es disposa d’un tuple d’assignatures on hi ha els noms de les 5 assignatures de primer, en el mateix ordre en què apareixen a totes les llistes dels estudiants al diccionari. Exemple:
>>> d = {'Joan Pera Pla':[7.0, 8.5, 9.5, 6.0, 9.8, 8.16],
... 'Roser Puig Pi':[9.4, 9.2, 9.5, 9.1, 9.3, 9.3],
... 'Anna Cucurull Alzina':[5.0, 5.0, 5.5, 4.5, 5.0, 5.0],
... 'Pol Riu Mont':[10.0, 8.0, 10.0, 8.0, 9.0, 9.0],
... 'Eric Politja Aviat':[6.0, 7.0, 9.0, 8.0, 10.0, 8.0]}
>>> t = ('Àlgebra Lineal', 'Càlcul I', "Fonaments d'Informàtica",
... 'Mecànica Fonamental', 'Química I')
En el mòdul cracks (fitxer cracks.py), dissenyeu les
funcions següents:
- cracks.escriu_excellents(fitxer, estudiant, notes, assignatures)¶
fitxer és un objecte fitxer obert per escriptura.
estudiant és un nom d’estudiant.
notes és una llista de notes com la dels valors d’un diccionari d’estudiants.
assignatures és un tuple d’assignatures.
Escriu al fitxer una línia per cada nota excel·lent de notes. La línia ha de tenir el format següent:
La nota de assignatura de estudiant és notaPer exemple:
>>> with open('tmp.txt', 'w') as f: ... escriu_excellents(f, 'Joan Pera Pla', [7.0, 8.5, 9.5, 6.0, 9.8, 8.16], t) >>> with open('tmp.txt', 'r') as f: print(f.read()) La nota de Fonaments d'Informàtica de Joan Pera Pla és 9.5 La nota de Química I de Joan Pera Pla és 9.8
Trobaràs més tests al fitxer
test-escriu_excellents.txt.
- cracks.cracks(notes, assignatures, nomf)¶
notes és un diccionari de notes`.
assignatures és un tuple d’assignatures.
nomf és el nom del fitxer on s’ha d’escriure el resultat.
Crea el fitxer nomf en què per cada estudiant de notes hi ha d’haver una línia si la nota mitjana és un excel·lent i, a més, tantes línies com escrigui la funció
escriu_excellents()a partir de les notes de l’estudiant.L’ordre en què apareixen els estudiants al fitxer ha de ser el mateix en què es recorren les claus de notes.
Una nota és un excel·lent si està compresa entre 9 i 10 (ambdós inclosos).
El format de les línies amb la nota mitjana ha de ser:
La nota mitjana de estudiant és notaPer exemple:
>>> cracks (d, t, 'genials.txt') >>> with open ('genials.txt', 'r') as f: print(f.read()) La nota de Fonaments d'Informàtica de Joan Pera Pla és 9.5 La nota de Química I de Joan Pera Pla és 9.8 La nota mitjana de Roser Puig Pi és 9.3 La nota de Àlgebra Lineal de Roser Puig Pi és 9.4 La nota de Càlcul I de Roser Puig Pi és 9.2 La nota de Fonaments d'Informàtica de Roser Puig Pi és 9.5 La nota de Mecànica Fonamental de Roser Puig Pi és 9.1 La nota de Química I de Roser Puig Pi és 9.3 La nota mitjana de Pol Riu Mont és 9.0 La nota de Àlgebra Lineal de Pol Riu Mont és 10.0 La nota de Fonaments d'Informàtica de Pol Riu Mont és 10.0 La nota de Química I de Pol Riu Mont és 9.0 La nota de Fonaments d'Informàtica de Eric Politja Aviat és 9.0 La nota de Química I de Eric Politja Aviat és 10.0
Trobaràs més tests al fitxer
test-cracks.txt.
Solucions
Disposes de solucions al fitxer cracks.py.