3. Proves d’atletisme (3 punts)¶
Desa les dues funcions d’aquest problema al mateix fitxer anomenat
atletisme.py.
Disposes de la següent funció:
- distancia(strDist)¶
Donat un
stringstrDist, formats per dígits, i opcionalment acabat en el substring “KM”, retorna un enter amb la distància en metres.
Per exemple:
>>> distancia('100') 100 >>> distancia('10500') 10500 >>> distancia('25KM') 25000
A continuació tens el codi de la funció distancia.
def distancia(s): if s[-2:].upper() == 'KM': dist = 1000*int(s[:-2]) else: dist = int(s) return dist
Important
Copia i enganxa el codi de la funció distancia
al començament del fitxer atletisme.py.
Dissenya la funció cursa() i desa-la al fitxer atletisme.py.
- cursa(strProva)¶
Donat un
stringstrProvaque representa una cursa d’atletisme (com per exemple'800-llisos-F','3000-marxa-M','400-relleus-M','10KM-obstacles-F', …) que té el següent format:un número indeterminat de caràcters que representen la distància de la prova (per exemple
'800','3000','10KM', …), seguit de un guió'-', i a continuacióun número indeterminat de caràcters que identifiquen el tipus de prova (per exemple
'llisos','marxa','relleus', …), seguit d’un segon guió, i finalmentun caràcter
'F'o'M', que denota prova femenina o masculina.
la funció
cursa()retorna dos valors:un
intamb la distància total recorreguda, tenint en compte que les curses de relleus multipliquen la distancia per 4 (per exemple, la cursa'400-relleus-M'recorre \(4*400 = 1600\) metres.)un
stringamb el codi del tipus de prova. Aquest codi està format pels dos primers caràcters del tipus de prova en majúscules. Per exemple,'LL'per'llisos'.
Per esbrinar la distància fes servir (crida) la funció
distanciai treballa amb la seva resposta.Per exemple:
>>> cursa('100-llisos-M') (100, 'LL') >>> cursa('3000-obstacles-F') (3000, 'OB') >>> cursa('10000-llisos-F') (10000, 'LL') >>> cursa('10km-marxa-M') (10000, 'MA') >>> cursa('100-relleus-F') (400, 'RE')
Trobaràs més tests al fitxer
test-cursa.txt