Excursions

El centre excursionista del barri conté la informació relativa a les excursions que pot organitzar en un fitxer de text. El fitxer té una primera línia amb el nom dels camps i una segona línia separadora. De la tercera línia fins a la darrera tindran els camps següents:

  • Nom del destí

  • Kilòmetres (representa els km en cotxe fins al punt de sortida) representarà un enter

  • Grau de dificultat (des d’1 en cas que sigui de dificultat baixa fins a 5 en cas de dificultat alta)

  • Durada (durada en minuts de l’excursió)

  • Comarca (Comarca en què acaba el recorregut de l’excursió).

Les dades de cada línia estan separades pel caràcter ':'. Vegeu, per exemple, el fitxer sortim.txt:

Nom_destí Kilòmetres Grau_de_dificultat durada_recorregut Comarca
====================================================================
Santa Creu d'Olorda:14:1:45:Baix Llobregat
Sant Ramon:17:2: 120:Baix Llobregat
Castell de Sant Miquel:31:2:45:Vallès Oriental
Escletxes del Papiol:12:3:90:Baix Llobregat
Castells de Besora i Montesquiu:97:5:180:Osona Matagalls:70:5:170:Osona
Puig de les aligues:105:4:200:Osona

Es demana fer la funció

on_podem_anar(nom_fitxer)

que a partir del nom d’un fitxer de les característiques anteriors, calculi i retorni un diccionari. El diccionari ha de complir les següents condicions:

  • Tingui com a claus els enters d’1 a 5 (corresponents als diferents graus de dificultat de les excursions)

  • Com a valor associat a cada un d’ells una llista de tuples. En la llista hi haurà la informació de les diferents excursions del nivell corresponent a la clau.

  • Les tuples tindran tres elements: el nom del destí (un string), la comarca (un string) i la despesa per desplaçament que haurem de fer (un float). El càlcul de la despesa serà el float arrodonit a dos decimals que tindrem al multiplicar la distància en kilòmetres fins al punt de sortida per 0.26 euros/kilometre.

A més es demana que les llistes associades a cada clau estiguin ordenades de manera creixent en funció de la despesa de viatge de l’excursió. Pots veure quin és el resultat en cas del fitxer anterior.

>>> d= on_podem_anar('sortim.txt')

>>> if d!=  {1: [("Santa Creu d'Olorda", 'Baix Llobregat', 3.64)],
... 2: [('Sant Ramon', 'Baix Llobregat', 4.42), ('Castell de Sant Miquel', 'Vallès Oriental', 8.06)],
... 3: [('Escletxes del Papiol', 'Baix Llobregat', 3.12)],
... 4: [('Puig de les aligues', 'Osona', 27.3)],
... 5: [('Matagalls', 'Osona', 18.2), ('Castells de Besora i Montesquiu', 'Osona', 25.22)]}:
...    print (d)

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