1. Astronautes¶
Al fitxer astronautes.py, trobareu la implementació de la
classe Astronauta especificada a continuació. No l’heu de tornar a implementar, només l’heu d’utilitzar en els dos exercicis següents. Els dos exercicis són independents.
- class Astronauta(nom, data_naixement, temps_min)¶
Crea una instància de la classe que representa un/a astronauta a partir del seu nom, data de naixement i temps mínim d’entrenament diari recomanat expressat en minuts.
Atributs
- naix¶
La data de naixement de l’astronauta (
datetime.date).
Mètodes
- temps_max()¶
Retorna el màxim temps d’entrenament diari recomanat a l’astronauta, calculat a partir del temps mínim i la data de naixement (
int).
Aquesta classe suporta les operacions següents:
Operació
Resultat
str(a)Retorna l’expressió «Astronauta: nom - naix» on nom és el nom de l’astronauta i naix la seva data de naixement en format dd/mm/aaaaa.
1.1. Edat futura (2.5 punts)¶
Al fitxer edat_futura.py implementeu la funció edat_futura() especificada a continuació que,
donada una instància de la classe Astronauta i
donada una instància de la classe datetime.date, retorna l’edat que tindrà l’astronauta en aquella data.
- edat_futura.edat_futura(astro, data_futur)¶
- Paràmetres:
astro – un astronauta (
Astronauta)data_futur – una data futura (
datetime.date)
- Retorna:
l’edat que tindrà l’astronauta a la data futura (
int).
Nota: Podeu calcular l’edat com la part entera dels dies viscuts dividits per 365.25
Vegeu per exemple:
>>> edat_futura(Astronauta('Fina', date(2000, 2, 12), 360), date(2034, 2, 11))
33
>>> edat_futura(Astronauta('Kim', date(2012, 5, 10), 340), date(2073, 12, 23))
61
Disposeu de més jocs de prova al fitxer tests-edat_futura.txt.
1.2. Més entrenament (2.5 punts)¶
Al fitxer mes_entrenament.py implementeu la funció mes_entrenament() especificada a continuació que, donada una llista d’instancies de la classe Astronauta, i un valor llindar de minuts d’entrenament, retorna l’expressió str(astro) on astro és el nom del primer astronauta de la llista que té un temps màxim d’entrenament inferior al valor llindar. Si no n’hi ha cap, la funció retorna el str buit.
- mes_entrenament.mes_entrenament(llista, llindar)¶
- Paràmetres:
llista – una llista d’astronautes (
listdeAstronauta)llindar – nombre de mínuts (
int)
- Retorna:
l’expressió str(astro) on astro és el primer astronauta de la llista que té un temps màxim d’entrenament diari inferior a llindar o “” si no n’hi ha cap.
Nota: Cal utilitzar el mètode temps_max() i la funció str().
Vegeu per exemple:
>>> l = [Astronauta('Roger', date(2012, 3, 31), 200), Astronauta('Maria', date(1996, 5, 10), 250)]
>>> mes_entrenament(l, 601)
'Astronauta: Roger - 31/03/2012'
>>> mes_entrenament(l, 501)
'Astronauta: Maria - 10/05/1996'
>>> mes_entrenament(l, 200)
''
Disposeu de més jocs de prova al fitxer tests-mes_entrenament.txt.