if-Selektion
Oft sollen gewisse Programmteile nur unter gewissen Bedingungen ausgeführt werden.
Das geht in Python durch if
-Selektion.
Das folgende Programm illustriert die zwei häufigsten Verwendungen der if-(-else)
-Selektion.
t = inputInt("Gib eine ganze Zahl!") if t >= 100: print("Die eingegebene Zahl ist grösser-gleich 100.") if t < 0: print("Die eingegebene Zahl ist negativ.") else: print("Die eingegebene Zahl ist nicht-negativ.")
if
-Selektion: Der eingerückte Code-Block (der auch aus mehreren Zeilen bestehen kann) nach der if
-Zeile wird ausgeführt, falls die Bedingung zwischen if
und :
wahr ist (wenn man die aktuellen Werte der Variablen einsetzt). Wer mag, kann den Doppelpunkt :
als then
lesen.
if
-else
-Selektion: Der eingerückte Code-Block nach der if
-Zeile wird ausgeführt, falls die angegebene Bedingung wahr ist, sonst wird der eingerückte Code-Block nach der Zeile else:
ausgeführt.
Einrückungen und Doppelpunkte sind wichtig! Wie bei Schleifen sind sie eine beliebte Fehlerquelle!
if
-Selektionen können verschachtelt werden:
t = inputInt("Wie viele Minuten Tageslicht hattest Du heute bereits?") if t >= 120: print("Gut, deine Augen werden es dir langfristig danken.") else: if t < 0: print("Das kommt mir etwas kurz vor!") else: print("Versuche bitte im eigenen Interesse, noch mindestens %d Minuten Tageslicht abzubekommen." % (120-t))
Quelle: Zwei Stunden Tageslicht pro Tag minimieren laut wissenschaftlicher Studien das Risiko, kurzsichtig zu werden, siehe Immer mehr Kinder werden kurzsichtig.
Hier bietet Python auch die Möglichkeit, else: if
zu dem Code-Kunstwort elif
zu verschmelzen: Das folgene Programm leistet dasselbe und ist etwas leichter lesbar - es werden weniger Einrückungen benötigt.
t = inputInt("Wie viele Minuten Tageslicht hattest Du heute bereits?") if t >= 120: print("Gut, deine Augen werden es dir langfristig danken.") elif t < 0: print("Das kommt mir etwas kurz vor!") else: print("Versuche bitte im eigenen Interesse, noch mindestens %d Minuten Tageslicht abzubekommen." % (120-t))
Hier sind auch längere Fallunterscheidungen per if
-elif
-elif
-…-elif
-else
möglich (wobei das else
am Ende immer optional ist).
Schreibe ein Programm, das vom Benutzer eine Temperaturangabe einliest und dann mitteilt, ob es kalt
oder kühl
oder behaglich
oder warm
oder heiss
ist.
Aufgaben zur if-Selektion
Schreibe ein Programm, dass vom Benutzer zwei Zahlen $a$ und $b$ einliest. Zuerst soll ausgegeben werden, wie viele Lösungen die (lineare) Gleichung $aX+b=0$ hat. Danach sollen alle Lösungen angegeben werden.
Alle Spezialfälle sind zu behandeln (denke an $0X+1=0$ und $0X+0=0$).
2aLM bis hier 22.09.2021
Aufgaben zu for-Schleifen und if-Selektion
Schreibe ein Programm, dass alle Teiler einer (am Anfang des Programms definierten) Zahl ausgibt! Ausserdem soll am Ende ausgegeben werden, wie viele Teiler diese Zahl hat.
Erinnerung: 45 % 7
liefert den Rest bei der Division von 45 durch 7
Schreibe ein Programm, dass alle Primzahlen von 1 bis zu einer gegebenen Zahl (etwa n = 100
) ausgibt.
Hinweis: Hier führt wohl kein Weg an einer verschachtelten for
-Schleife vorbei.
Um alle Primzahlen übersichtlich in einer Zeile auszugeben: Baue in der for
-Schleife einen String auf, der am Ende ausgegeben wird.
2aLM und 2dNP bis hier am 29.09.2021, manche an obiger Primzahlliste, andere schon bei Listen oder Modifikation von Listen…