Musterlösung
def gruezi3(nachname, uhrzeit):
if(uhrzeit < 18):
grussform = "Tag"
else:
grussform = "Abend"
return "Guten " + grussform + " " + nachnameErstelle eine neue Funktion gruezi3 die gruezi (aus Übung 5.1) um einem weiteren Parameter uhrzeit erweitert. Die Funktion soll vor 18 Uhr (uhrzeit < 18) mit “Guten Tag” und sonst mit “Guten Abend” grüssen. Um es einfach zu halten: Die Zeitangbe muss in Dezimalzahlen erfolgen (also nicht 20:15 Uhr sondern 20.25).
def gruezi3(nachname, uhrzeit):
if(uhrzeit < 18):
grussform = "Tag"
else:
grussform = "Abend"
return "Guten " + grussform + " " + nachname# die Lösung sollte etwa folgendermasssen funktionieren:
gruezi3("Guido", uhrzeit = 21)'Guten Abend Guido'
Erweitere die Funktion gruezi2 so, dass zwischen folgende Uhrzeiten berücksichtigt werden:
| Uhrzeit | Begrüssungsform | |
|---|---|---|
| 5 bis 11 Uhr | Guten Morgen | |
| 11 bis 18 Uhr | Guten Tag | |
| 18 bis 22 Uhr | Guten Abend | |
| 22 bis 5 Uhr | Gute Nacht |
Das Problem ist etwas schwierig zu Packen weil wir die “von - bis” Uhrzeiten in eine Ja/Nein Logik überführen müssen. Überlege dir zuerst eine Ausführungslogik und schreibe danach die if, elifund else Operationen. Im Dropdown unten ist unser Vorschlag.

def gruezi2(nachname, anrede, uhrzeit):
if(uhrzeit < 5):
was = "Gute Nacht"
elif(uhrzeit < 11):
was = "Guten Morgen"
elif(uhrzeit < 18):
was = "Guten Tag"
elif(uhrzeit < 22):
was = "Guten Abend"
else:
was = "Gute Nacht"
return was + ", " + anrede + " "+ nachnameTeste die Funktion mit verschiedenen Optionen um sicherzustellen, dass sie richtig funktioniert.
Erweitere die Funktion bmi aus Übung 6.3 so, dass statt dem berechneten BMI der “Nutritional status” aufgrund der WHO Klassifizierung ausgegeben wird:
| BMI | Nutritional status |
|---|---|
| Below 18.5 | Underweight |
| 18.5–24.9 | Normal weight |
| 25.0–29.9 | Pre-obesity |
| 30.0–34.9 | Obesity class I |
| 35.0–39.9 | Obesity class II |
| Above 40 | Obesity class III |
def bmi2(groesse_m, gewicht_kg):
bmi = gewicht_kg / (groesse_m * groesse_m)
if(bmi < 18.5):
cat = "Underweight"
elif(bmi <= 24.9):
cat = "Normal weight"
elif(bmi <= 29.9):
cat = "Pre-obesity"
elif(bmi <= 34.9):
cat = "Obesity class I"
elif(bmi <= 39.9):
cat = "Obesity class II"
else:
cat = "Obesity class III"
return "Who classification: " + cat# Der Output sollte etwa folgedermassen aussehen
bmi2(1.7, 70)'Who classification: Normal weight'