1. Aeroport (3 punts)¶
En un fitxer tenim la informació de tots els vols que surten d’un
aeroport. El format d’aquest fitxer és el següent: per a cada línia hi
ha la ciutat de destí, codi del vol, hora de sortida, hora d’arribada, temps
de retard previst. Cada part d’aquesta informació està separada amb
;.
Pots descarregar el fitxer d’exemple
aeroport.txtamb el següent contingut:
Siena;SIE24A;09:23;11:12;0
Roma;ROM4562TE;08:10;09:55;10
Trieste;TR234WW;07:25;09:34;0
Roma;ROM778R;10:04;12:00;3
Siena;SI562E;12:34;13:55;10
Florencia;FR452FF;12:12;14:02;0
Roma;ROM556E;12:14;15:12;20
Siena;SIE24A;19:23;21:12;30
Roma;ROYY562TE;12:10;14:55;20
Trieste;TRUU4WW;07:25;09:34;0
Roma;RORD78R;12:04;15:00;3
Siena;SITTWE;16:34;15:55;40
Florencia;FR4TTFF;13:12;15:02;0
Roma;ROM556E;15:14;17:12;20
Com podeu observar l’hora de sortida i d’arribada té el format: HH:MM. El temps de retard previst ve donat en minuts (com un enter).
Es demana que implementeu una funció anomenada
- destinacions(nomf, retard_max)¶
tal que donat un string que representa el nom d’un fitxer com el
descrit i un enter retard_max que diu el màxim de retard que podem
admetre, retorna un diccionari amb les claus de totes les ciutats de
destí per a les quals hi ha algun vol amb un retard inferior o igual a
retard_max i com a valor la llista dels codis dels vols a aquest
destí que compleixen aquesta condició.
El diccionari ha de complir que les llistes resultants estiguin ordenades alfabèticament.
La solució s’ha de lliurar a la tasca d’Atenea en el fitxer
aeroport.py. La funció ha de passar el següent doctest:
>>> d1=destinacions('aeroport.txt', 10) >>> if d1!={'Siena': ['SI562E', 'SIE24A'], 'Roma': ['ROM4562TE', 'ROM778R', 'RORD78R'], 'Trieste': ['TR234WW', 'TRUU4WW'], 'Florencia': ['FR452FF', 'FR4TTFF']}: ... print (d1) >>> d2=destinacions('aeroport.txt', 30) >>> if d2 != {'Siena': ['SI562E', 'SIE24A', 'SIE24A'], 'Roma': ['ROM4562TE', 'ROM556E', 'ROM556E', 'ROM778R', 'RORD78R', 'ROYY562TE'], 'Trieste': ['TR234WW', 'TRUU4WW'], 'Florencia': ['FR452FF', 'FR4TTFF']}: ... print (d2) >>> d3=destinacions('aeroport.txt', 5) >>> if d3 != {'Siena': ['SIE24A'], 'Trieste': ['TR234WW', 'TRUU4WW'], 'Roma': ['ROM778R', 'RORD78R'], 'Florencia': ['FR452FF', 'FR4TTFF']}: ... print (d3) >>> d4=destinacions('aeroport.txt', 2) >>> if d4!= {'Siena': ['SIE24A'], 'Trieste': ['TR234WW', 'TRUU4WW'], 'Florencia': ['FR452FF', 'FR4TTFF']}: ... print (d4) >>> d5=destinacions('aeroport.txt', 0) >>> if d5!= {'Siena': ['SIE24A'], 'Trieste': ['TR234WW', 'TRUU4WW'], 'Florencia': ['FR452FF', 'FR4TTFF']}: ... print (d5)
Nota
Pots descarregar el fitxer amb tests test-aeroport.txt i una solució de aeroport.py.