Übung 8

Übung 8.1

Erstelle eine neue Funktion gruezi3 die gruezi (aus Übung 6.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).

# die Lösung sollte etwa folgendermasssen funktionieren:

gruezi3("Guido", uhrzeit = 21)
'Guten Abend Guido'

Übung 8.2

Erweitere die Funktion gruezi2 so, dass zwischen folgende Uhrzeiten berücksichtigt werden:

Tabelle 32.1: Uhrzeiten und ihre Begrüssungsformen
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. Hier unser Vorschlag:

graph LR
    A[uhrzeit < 5] 
    A-->|yes| B[Gute Nacht]
    A-->|no| C[Uhrzeit < 11]
    C-->|yes| D[Guten Morgen]
    C-->|no| E[Uhrzeit < 18]
    E-->|yes| F[Guten Tag]
    E-->|no| G[Uhrzeit < 22]
    G-->|yes| H[Guten Abend]
    G-->|no| I[Gute Nacht]

Teste die Funktion mit verschiedenen Optionen um sicherzustellen, dass sie richtig funktioniert.

Übung 8.3

Erweitere die Funktion bmi aus Übung 7.3 so, dass statt dem berechneten BMI der “Nutritional status” aufgrund der WHO Klassifizierung ausgegeben wird:

Tabelle 32.2: WHO Nutritional status
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
# Der Output sollte etwa folgedermassen aussehen
bmi2(1.7, 70)
'Who classification: Normal weight'