In dieser Einheit lernen wir etwas über Bedingungen und trainieren ihren Einsatz in einfachen Beispielen manuell.
Bedingungen als Wahrheitswerte: logische Ausdrücke
Wir verwenden für logische Ausdrücke die folgenden Operatoren (True und False entsprechen «wahr» und «falsch»):
| Operator | Bedeutung | Beispiele |
| == | Gleich | 3 == 3 ergibt True 3 == 4 ergibt False |
| != | Ungleich (≠) | 3 != 3 ergibt False 3 != 4 ergibt True |
| <, <=, >,>= | Kleiner, kleiner oder gleich (≤), grösser, grösser oder gleich (≥) | 3 > -1 oder 3 >= 2 oder 3 <= 3 ergibt True 3 < -1 oder 3 < 2 oder 3 < 3 ergibt False |
| and, or | und, oder | True and False ergibt False True or False ergibt True usw. |
Beispiel von logischen Ausdrücken:
| Ausdruck | Wert |
| 4 == 4 or 3 > 5 | True |
| b=7; b < 5 and 17 >= 17 | False |
| 3 != 4 or 8 > 4 | True |
Komplettieren Sie so die folgenden Beispiele:
| Nr | Ausdruck | Wert |
|---|---|---|
| 1 | a = 5; a == 5 | |
| 2 | b = 3; b < 10 | |
| 3 | c = 7; c != 2 | |
| 4 | d = 1; d >= 1 | |
| 5 | e = 9; e < 3 or e > 3 | |
| 6 | x = 4; x == 4 and x > 2 | |
| 7 | y = 8; y < 5 or y > 6 | |
| 8 | z = 2; z != 2 or z <= 2 | |
| 9 | k = 10; k > 5 and k < 9 | |
| 10 | m = 0; m == 0 or m < 0 | |
| 11 | p = 6; p > 3 and p <= 6 | |
| 12 | q = 12; q < 10 or q >= 12 | |
| 13 | r = 5; r == 5 and r != 4 | |
| 14 | s = 7; s < 3 and s > 1 | |
| 15 | t = 3; t <= 3 or t > 10 | |
| 16 | a = 4; b = 9; a < b and b > 5 | |
| 17 | c = 2; d = 2; c == d or d > 3 | |
| 18 | e = 8; f = 1; e < f or f < 2 | |
| 19 | g = 7; h = 7; g >= h and g == h | |
| 20 | i = 5; j = 3; i < j or j < i | |
| 21 | a = 3; b = 10; a < 5 and (b > 8) | |
| 22 | c = 9; d = 4; (c == 9 and d != 4) or d < 2 | |
| 23 | e = 6; f = 6; e >= f and (f > 5 or e < 1) | |
| 24 | g = 1; h = 8; g > 2 or (h >= 8 and g == 1) | |
| 25 | i = 4; j = 2; (i < 3 and j < 3) or (i >= 4 and j <= 2) |
Überprüfung
- Sie wissen, wie logische Ausdrücke ausgewertet werden
| Nr | Ausdruck | Wert |
| 1 | a = 5; a == 5 | True |
| 2 | b = 3; b < 10 | True |
| 3 | c = 7; c != 2 | True |
| 4 | d = 1; d >= 1 | True |
| 5 | e = 9; e < 3 or e > 3 | True |
| 6 | x = 4; x == 4 and x > 2 | True |
| 7 | y = 8; y < 5 or y > 6 | True |
| 8 | z = 2; z != 2 or z <= 2 | True |
| 9 | k = 10; k > 5 and k < 9 | False |
| 10 | m = 0; m == 0 or m < 0 | True |
| 11 | p = 6; p > 3 and p <= 6 | True |
| 12 | q = 12; q < 10 or q >= 12 | True |
| 13 | r = 5; r == 5 and r != 4 | True |
| 14 | s = 7; s < 3 and s > 1 | False |
| 15 | t = 3; t <= 3 or t > 10 | True |
| 16 | a = 4; b = 9; a < b and b > 5 | True |
| 17 | c = 2; d = 2; c == d or d > 3 | True |
| 18 | e = 8; f = 1; e < f or f < 2 | True |
| 19 | g = 7; h = 7; g >= h and g == h | True |
| 20 | i = 5; j = 3; i < j or j < i | True |
| 21 | a = 3; b = 10; a < 5 and (b > 8) | True |
| 22 | c = 9; d = 4; (c == 9 and d != 4) or d < 2 | False |
| 23 | e = 6; f = 6; e >= f and (f > 5 or e < 1) | True |
| 24 | g = 1; h = 8; g > 2 or (h >= 8 and g == 1) | True |
| 25 | i = 4; j = 2; (i < 3 and j < 3) or (i >= 4 and j <= 2) | True |
Kontrollstruktur Bedingung
Weil wir nun Bedingungen ausdrücken können als logische Ausdrücke, können wir damit den Verlauf von Algorithmen beeinflussen.
Dies ist die Syntax:
if BEDINGUNG:
Befehlsblock (eingerückt!)
elif BEDINGUNG:
Befehlsblock (eingerückt!)
elif BEDINGUNG:
Befehlsblock (eingerückt!)
else: # Lumpensammler!
Befehlsblock (eingerückt!)
Dabei steht if für «falls», elif für else if oder «sonst falls», und else für «sonst». Es kann beliebig viele elif Blöcke geben, und höchstens einen else Block.
Mit dieser Kontrollstruktur können nun interaktive Algorithmen wie der folgende erstellt werden:
Ein Programm fragt nach dem Namen und dem Alter. Wenn das Alter unter 18 ist, grüsst es mit «Hallo » und dem Namen, sonst mit «Guten Tag, » und dem Namen.
name = input("Name: ")
eingabe = input("Alter: ")
alter = int(eingabe) # Achtung: an die Umwandlung denken!
if alter < 18:
print("Hallo " + name)
else:
print("Guten Tag, " + name)
Schreiben Sie nun Algorithmen für die folgenden Beispiele:
| Nr. | Aufgabe |
| 1 | Frage nach der Temperatur. Wenn Temperatur unter 10, gib «kalt» aus. |
| 2 | Frage nach den Schritten. Wenn Schritte über 10000, gib «Ziel erreicht» aus. |
| 3 | Frage nach einem Punktestand. Wenn Punkte gleich 0, gib «Neu starten» aus. |
| 4 | Frage nach einer Uhrzeit. Wenn Stunde kleiner als 7, gib «früh» aus. |
| 5 | Frage, ob heute Regen gemeldet ist («ja»/«nein»). Wenn «ja», gib «Schirm mitnehmen» aus. |
| 6 | Frage nach dem Kontostand. Wenn Stand negativ, gib «Achtung Minus» aus. |
| 7 | Frage, ob jemand Hunger hat («ja»/«nein»). Wenn ja, schlag einen Snack vor. |
| 8 | Frage nach dem Alter. Unter 16: «Keine Mofa-Prüfung», sonst «Möglich». |
| 9 | Frage nach Akku-Prozent. Unter 20: «Laden», sonst «Alles ok». |
| 10 | Frage nach Tageszeit («morgen»/«abend»). Morgen: «Guten Morgen», sonst «Guten Abend». |
| 11 | Frage nach Schlafstunden. Unter 7: «Zu wenig», sonst «Genug». |
| 12 | Frage nach Budget und Preis. Wenn Preis ≤ Budget: «Kaufbar», sonst «Zu teuer». |
| 13 | Frage nach Temperatur. Unter 0: «Gefrierpunkt», sonst «Über Null». |
| 14 | Frage nach Schulnote 1–6. 5.5 oder drüber: «Sehr gut», zwischen 4 und 5: «Ok», sonst «Verbessern». |
| 15 | Frage nach Wetter («sonne», «regen», «schnee»). Gib passende Empfehlung. |
| 16 | Frage nach Verkehrslage («frei», «stau», «baustelle»). Gib Hinweis. |
| 17 | Frage nach Stimmung (1–10). ≤3: «schlechter Tag», ≤7: «ok», sonst «top». |
| 18 | Zeit und Lust abfragen. Beides «ja»: «Komm mit». Nur Lust: «Zu wenig Zeit». Sonst: «Vielleicht später». |
| 19 | Temperatur einteilen. <0: «Winter», 0–20: «Übergang», >20: «Sommer». |
| 20 | Prüfen: Geld >20 oder Abo = «ja». Falls ja: «Eintritt möglich», sonst «Nicht genug». |
Überprüfung
- Sie wissen, wie Bedingungen gestellt werden
Musterlösungen:
| Nr. | Aufgabe | Musterlösung |
| 1 | Frage nach der Temperatur. Wenn Temperatur unter 10, gib «kalt» aus. | t = int(input(«Temp: «)) if t < 10: print(«kalt») |
| 2 | Frage nach den Schritten. Wenn Schritte über 10000, gib «Ziel erreicht» aus. | s = int(input(«Schritte: «)) if s > 10000: print(«Ziel erreicht») |
| 3 | Frage nach einem Punktestand. Wenn Punkte gleich 0, gib «Neu starten» aus. | p = int(input(«Punkte: «)) if p == 0: print(«Neu starten») |
| 4 | Frage nach einer Uhrzeit. Wenn Stunde kleiner als 7, gib «früh» aus. | h = int(input(«Stunde: «)) if h < 7: print(«früh») |
| 5 | Frage, ob heute Regen gemeldet ist («ja»/«nein»). Wenn «ja», gib «Schirm mitnehmen» aus. | r = input(«Regen? «) if r == «ja»: print(«Schirm mitnehmen») |
| 6 | Frage nach dem Kontostand. Wenn Stand negativ, gib «Achtung Minus» aus. | k = float(input(«Kontostand: «)) if k < 0: print(«Achtung Minus») |
| 7 | Frage, ob jemand Hunger hat («ja»/«nein»). Wenn ja, schlag einen Snack vor. | h = input(«Hunger? «) if h == «ja»: print(«Hol dir einen Snack») |
| 8 | Frage nach dem Alter. Unter 16: «Keine Mofa-Prüfung», sonst «Möglich». | a = int(input(«Alter: «)) if a < 16: print(«Keine Mofa-Prüfung») else: print(«Möglich») |
| 9 | Frage nach Akku-Prozent. Unter 20: «Laden», sonst «Alles ok». | p = int(input(«Akku: «)) if p < 20: print(«Laden») else: print(«Alles ok») |
| 10 | Frage nach Tageszeit («morgen»/«abend»). Morgen: «Guten Morgen», sonst «Guten Abend». | t = input(«Tageszeit: «) if t == «morgen»: print(«Guten Morgen») else: print(«Guten Abend») |
| 11 | Frage nach Schlafstunden. Unter 7: «Zu wenig», sonst «Genug». | s = int(input(«Schlaf: «)) if s < 7: print(«Zu wenig») else: print(«Genug») |
| 12 | Frage nach Budget und Preis. Wenn Preis ≤ Budget: «Kaufbar», sonst «Zu teuer». | b = int(input(«Budget: «)) p = int(input(«Preis: «)) if p <= b: print(«Kaufbar») else: print(«Zu teuer») |
| 13 | Frage nach Temperatur. Unter 0: «Gefrierpunkt», sonst «Über Null». | t = int(input(«Temp: «)) if t < 0: print(«Gefrierpunkt») else: print(«Über Null») |
| 14 | Frage nach Schulnote 1–6. 5.5 oder drüber: «Sehr gut», zwischen 4 und 5: «Ok», sonst «Verbessern». | n = int(input(«Note: «)) if n >= 5.5: print(«Sehr gut») elif n >= 4: print(«Ok») else: print(«Verbessern») |
| 15 | Frage nach Wetter («sonne», «regen», «schnee»). Gib passende Empfehlung. | w = input(«Wetter: «) if w == «sonne»: print(«Sonnencreme») elif w == «regen»: print(«Regenjacke») elif w == «schnee»: print(«Warm anziehen») else: print(«Unbekannt») |
| 16 | Frage nach Verkehrslage («frei», «stau», «baustelle»). Gib Hinweis. | v = input(«Verkehr: «) if v == «frei»: print(«Schnell unterwegs») elif v == «stau»: print(«Mehr Zeit einplanen») elif v == «baustelle»: print(«Umweg prüfen») else: print(«Keine Angabe») |
| 17 | Frage nach Stimmung (1–10). ≤3: «schlechter Tag», ≤7: «ok», sonst «top». | s = int(input(«Stimmung: «)) if s <= 3: print(«schlechter Tag») elif s <= 7: print(«ok») else: print(«top») |
| 18 | Zeit und Lust abfragen. Beides «ja»: «Komm mit». Nur Lust: «Zu wenig Zeit». Sonst: «Vielleicht später». | z = input(«Zeit? «) l = input(«Lust? «) if z == «ja» and l == «ja»: print(«Komm mit») elif l == «ja»: print(«Zu wenig Zeit») else: print(«Vielleicht später») |
| 19 | Temperatur einteilen. <0: «Winter», 0–20: «Übergang», >20: «Sommer». | t = int(input(«Temp: «)) if t < 0: print(«Winter») elif t <= 20: print(«Übergang») else: print(«Sommer») |
| 20 | Prüfen: Geld >20 oder Abo = «ja». Falls ja: «Eintritt möglich», sonst «Nicht genug». | g = int(input(«Geld: «)) a = input(«Abo (ja/nein): «) if g > 20 or a == «ja»: print(«Eintritt möglich») else: print(«Nicht genug») |