PROG0088 - Life expectancy

no tags 

Suppose that the life expectancy for an average person is 70 years, and that this life expectancy can be adapted based on the following criteria:

  • for women, four years are added
  • for smokers, five years are subtracted and for non-smokers, five years are added
  • subtract 3 years for persons that never take part in any sport and add one year for every hour a person exercises a week
  • subtract half a year for every glass of alcohol consumed over the seven a person drinks a week (for a person that consumes eleven glasses of alcohol a week, two years are subtracted); add two years for those who don't drink any alcohol
  • for persons that don't eat fast food too often, three years are added

Based on the formula, the life expectancy of a male smoker that exercises only two hours a week, drinks ten glasses of alcohol a week and eats fast food fairly often, is 65.5 years.

Note: This is NOT a scientific prophecy. Those that have constructed this question can't be put responsible for wrong prophecies of the age you will die! I have considered a scientifically build questionnaire, but seeing as it asked questions concerning your stools, I decided to make one up myself.

Assignment

Write a function life_expectancy to which the five parameters below should be passed:

  • sex: a string that indicates the sex of the person (man or woman)
  • smoker: a Boolean value that indicates whether the person smokes or not
  • sports: an integer that indicates how many hours the person exercises
  • alcohol: an integer that indicates the amount of glasses of alcohol the person drinks a week
  • fastfood: a Boolean value that indicates how much fast food is eaten

Based on the values given, the function should predict the life expectancy, and has to print this prognosis as a result. The result of the function should be given as an integer.

Example

>>> life_expectancy(sex='man', smoker=True, sports=2, alcohol=10, fastfood=True)
65.5
>>> life_expectancy(sex='man', smoker=True, sports=5, alcohol=5, fastfood=True)
70.0
>>> life_expectancy(sex='woman', smoker=False, sports=5, alcohol=0, fastfood=False)
89.0
>>> life_expectancy(sex='woman', smoker=False, sports=3, alcohol=14, fastfood=True)
78.5
>>> life_expectancy(sex='man', smoker=False, sports=4, alcohol=4, fastfood=False)
82.0

Veronderstel dat de levensverwachting van een doorsnee persoon 70 jaar is, en dat die levensverwachting kan worden aangepast op basis van de volgende criteria:

  • bij vrouwen wordt er vier jaar bijgeteld
  • bij rokers wordt er vijf jaar afgetrokken en bij niet-rokers wordt er vijf jaar bijgeteld
  • trek drie jaar af voor personen die nooit sporten en tel één jaar bij voor elk uur dat iemand wekelijks aan sport doet
  • trek een half jaar af voor elk geconsumeerd glas alcohol boven de zeven dat iemand per week drinkt (bij iemand die elf glazen alcohol per week drinkt worden dus twee jaren afgetrokken); bij geheelonthouders wordt er twee jaar bijgeteld
  • bij personen die niet vaak fast food eten wordt er drie jaar bijgeteld

Op basis van deze formule kan de levensverwachting van een mannelijke roker die slechts twee uur per week aan sport doet, tien glazen alcohol per week drinkt en vaak fast food eet worden berekend op 65,5 jaar.

Commentaar: Dit is GEEN wetenschappelijke voorspelling. Diegene die deze vraag heeft opgesteld kan niet verantwoordelijk gesteld worden voor het verkeerd voorspellen van de leeftijd waarop je zult sterven! Ik heb een wetenschappelijk onderbouwde vragenlijst in overweging genomen, maar aangezien daarin vragen werden gesteld betreffende de stoelgang en dergelijke heb ik beslist om er zelf maar één op te stellen.

Opgave

Schrijf een functie levensverwachting waaraan de volgende vijf parameters moeten doorgegegeven worden:

  • geslacht: een string die het geslacht van de persoon aangeeft (man of vrouw)
  • roker: een Booleaanse waarde die aangeeft of de persoon rookt
  • sport: een natuurlijk getal dat aangeeft hoeveel uren per week de persoon aan sport doet
  • alcohol: een natuurlijk getal dat aangeeft hoeveel glazen alcohol de persoon per week drinkt
  • fastfood: een Booleaanse waarde die aangeeft of de persoon vaak fastfood eet

De functie moet op basis van de doorgegeven waarden de levensverwachting voorspellen, en moet deze prognose als resultaat teruggeven. Het resultaat van de functie moet als een reëel getal teruggegeven worden.

Voorbeeld

>>> levensverwachting(geslacht='man', roker=True, sport=2, alcohol=10, fastfood=True)
65.5
>>> levensverwachting(geslacht='man', roker=True, sport=5, alcohol=5, fastfood=True)
70.0
>>> levensverwachting(geslacht='vrouw', roker=False, sport=5, alcohol=0, fastfood=False)
89.0
>>> levensverwachting(geslacht='vrouw', roker=False, sport=3, alcohol=14, fastfood=True)
78.5
>>> levensverwachting(geslacht='man', roker=False, sport=4, alcohol=4, fastfood=False)
82.0


Added by:Peter Dawyndt
Date:2011-08-02
Time limit:10s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:PY_NBC
Resource:None