1. Preu abonament [3 Punts]¶
Un club esportiu té a la disposició del públic dos tipus d’abonaments diferents: amb cap de setmana i sense cap de setmana. El preu de l’abonament a més dependrà de l’edat del soci i de si disposa d’algun carnet.
El preu base de l’abonament sense cap de setmana és un 20% més barat que el de l’abonament amb cap de setmana. A més, per a cada tipus d’abonament apliquem els següents descomptes:
Si l’abonat és menor de 18 anys, se li aplicarà un 25% de descompte.
Si l’abonat té entre 18 i 64 anys, no se li aplicarà cap descompte per aquest motiu. Ara bé en aquest cas li aplicarem un 10% de descompte si té el carnet d’Estudiant o un 5% si té el carnet del centre cultural del barri. Només podrà fer ús d’un únic carnet.
Si l’abonat té 65 anys o més, se li aplicarà un 50% descompte. En aquest cas se li farà una bonificació extra de 5 euros del preu final si té carnet del centre cultural del barri.
Implementa una funció anomenada
preu_abonamentque donat el preu base d’un abonament al club esportiu amb cap de setmana inclòs, donada l’edat de la persona que vol abonar-se i donat un string que conté el tipus de carnet del que disposa el possible abonat, retorna dos enters. El primer correspon a la part entera del preu que li correspon si tria un abonament amb cap de setmana i el segon que correspon a la part entera de l’abonament sense cap de setmana.Al carnet d’estudiant li correspon l’string
Estudianti al carnet del centre cultural del barri li corresponC_Barri.
Desa la funció al fitxer abonament.py. La funció ha de passar el següent doctest:
>>> preu_abonament(100, 14, 'Estudiant') (75, 60) >>> preu_abonament(100, 24, 'Estudiant') (90, 72) >>> preu_abonament(100, 74, 'Estudiant') (50, 40) >>> preu_abonament(100, 74, 'C_Barri') (45, 35) >>> preu_abonament(200, 16, 'Estudiant') (150, 120) >>> preu_abonament(200, 34, 'C_Barri') (190, 152) >>> preu_abonament(200, 71, 'C_Barri') (95, 75)
Nota
Pots descarregar el fitxer amb tests test-abonament.txt. Pots trobar una solució a abonament.py