lehrkraefte:snr:informatik:glf23:python:if-statements

if-Statements und if-else-Statements

Mit der Klasse schrittweise geschriebenes Programm (im Editor und an der Tafel):

Mit der Klasse schrittweise geschriebenes Programm (im Editor und an der Tafel):

einfuehrung-if.py
alter = int(input("Wie alt bist du? "))
if (alter >= 13) and (alter < 20):
    print("Du bist ein Teenager.")
 
antwort = input("In welcher Stadt befindet sich die KSBG? ")
if (antwort == "St. Gallen") or (antwort == "St.Gallen"):
    print("Korrekt!")
else:
    print("Vermutlich falsch.")
    print("Die als richtig akzeptierten Antworten wären 'St. Gallen' und 'St.Gallen' gewesen.")

Tafelerklärungen dazu

Tafelerklärungen dazu

  • Struktur des if statements: Der Doppelpunkt und die Einrückungen sind wichtig!
  • Ausführungsbedingung: Ein Ausdruck, der wahr (True) oder falsch (False) sein kann.
  • Vergleichsoperatoren (teste in Python-Shell):
    • == (gleich), != ungleich, z.B. “xxx”== 3 * “x”
    • bei Zahlen: <, <= (kleiner-gleich), >, >= (grösser-gleich)
  • logische Verknüpfungen (teste in Python-Shell):
    • and = logisches Und: Wird genau dann wahr, wenn beide Aussagen wahr sind.
    • or = logisches Oder: Wird genau dann wahr, wenn mindestens eine Aussage wahr ist.
    • not = logische Verneinug = Negation: Macht aus True False und umgekehrt.
  • Wahrheitswerte = boolesche Werte: True und False. Neuer Datentyp.
  • if-else-statement: Die Einrückungen sind wichtig.

Schreibe ein Programm, das den Benutzer fragt, wie viele Minuten Tageslicht er heute bereits hatte.

  • Falls er 120 Minuten oder mehr antwortet, soll er gelobt werden.
  • Sonst wird ihm gesagt, wie viele Minuten er noch draussen verbringen sollte. Beispiel: Der Benutzer gibt ein, dass er 35 Minuten Tageslich hatte. Dann soll der Computer Folgendes ausgeben: Bitte gehe noch 85 Minuten nach draussen.

Hintergrundinformation: Zwei Stunden Tageslicht pro Tag minimieren laut wissenschaftlicher Studien das Risiko, kurzsichtig zu werden, siehe Deutschlandfunk Kultur: Immer mehr Kinder werden kurzsichtig.

Das folgende Programm erzeugt zwei Zufallszahlen zwischen 2 und 10.

kopfrechentrainer.py
import random
x = random.randrange(2, 11)
y = random.randrange(2, 11)
print(x)
print(y)

Schreibe das Programm so um, dass der Computer den Benutzer nach dem Produkt der Variablen x und y fragt und ihm mitteilt, ob er richtig gerechnet hat. Der Dialog mit dem Computer sollte sinngemäss so aussehen:

Was ist das Produkt von 5 und 7? 24
Dies ist leider falsch. Richtig wäre 35 gewesen.

Bonus

Erweitere den Kopfrechentrainer, etwa um eine Divisionsaufgabe, oder um eine Additions- oder Subtraktionsaufgabe von Zahlen zwischen -100 und 100. Wenn du mehrere Aufgaben nacheinander stellen willst, solltest du eine while-Schleife verwenden, wie wir sie bald behandeln werden.

Oft muss man verschiedene Fälle unterscheiden, wie im folgenden Programm illustriert. Dort steht elif abkürzend für “else if”.

fallunterscheidung.py
alter = int(input('Gib dein Alter ein! '))
if alter <= 18:
    print('Du bist noch nicht volljährig.')
elif alter > 70:
    print('Du bist ein Senior.')
else:
    print('Du bist volljährig, aber noch kein Senior.')

Statt einer elif-Bedingung könnte es auch mehrere solcher Bedingungen geben (also zuerst if, dann mehrmals elif und am Ende eventuell ein else).

Alternativen, die zum selben Programmablauf führen:

Alternativen, die zum selben Programmablauf führen:

Mit zwei verschachtelten if-statements; das obige Programm ist einen “Abkürzung” des folgenden Programms: Das erste else ist mit dem nachfolgenden if zu elif verschmolzen; dies spart Schreibarbeit und Einrückungen:

fallunterscheidung-ausfuehrlich.py
alter = int(input('Gib dein Alter ein!'))
if alter <= 18:
    print('Du bist noch nicht volljährig.')
else:
    if alter > 70:
        print('Du bist ein Senior.')
    else:
        print('Du bist volljährig, aber noch kein Senior.')

Mit drei if-statements; dies ist tendenziell fehleranfälliger, denn auch im dritten if-statement muss man noch eine Bedingung angeben, während im obersten Programm dort nur ein elsesteht:

fallunterscheidung-ausfuehrlich.py
alter = int(input('Gib dein Alter ein!'))
if alter <= 18:
    print('Du bist noch nicht volljährig.')
if alter > 70:
    print('Du bist ein Senior.')
if alter > 18 and alter <= 70:
    print('Du bist ein Senior.')

(1) Schreibe ein Programm mit drei elif-statements ähnlich wie im vorigen Programm, das vom Benutzer eine Temperaturangabe einliest und diesem dann mitteilt, ob es kalt oder kühl oder behaglich oder warm oder heiss ist. In welchem Temperaturbereich welches Temperaturempfinden eintritt, ist dir überlassen.

(3) Teste dein Programm: Für jeden Temperaturbereich ist mindestens ein Test durchzuführen.

  • lehrkraefte/snr/informatik/glf23/python/if-statements.txt
  • Last modified: 2023/09/28 14:46
  • by Olaf Schnürer