Bedingungen

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»):

OperatorBedeutungBeispiele
==Gleich3 == 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, orund, oderTrue and False ergibt False
True or False ergibt True
usw.

Beispiel von logischen Ausdrücken:

AusdruckWert
4 == 4 or 3 > 5True
b=7; b < 5 and 17 >= 17False
3 != 4 or 8 > 4True

Komplettieren Sie so die folgenden Beispiele:

NrAusdruckWert
1a = 5; a == 5
2b = 3; b < 10
3c = 7; c != 2
4d = 1; d >= 1
5e = 9; e < 3 or e > 3
6x = 4; x == 4 and x > 2
7y = 8; y < 5 or y > 6
8z = 2; z != 2 or z <= 2
9k = 10; k > 5 and k < 9
10m = 0; m == 0 or m < 0
11p = 6; p > 3 and p <= 6
12q = 12; q < 10 or q >= 12
13r = 5; r == 5 and r != 4
14s = 7; s < 3 and s > 1
15t = 3; t <= 3 or t > 10
16a = 4; b = 9; a < b and b > 5
17c = 2; d = 2; c == d or d > 3
18e = 8; f = 1; e < f or f < 2
19g = 7; h = 7; g >= h and g == h
20i = 5; j = 3; i < j or j < i
21a = 3; b = 10; a < 5 and (b > 8)
22c = 9; d = 4; (c == 9 and d != 4) or d < 2
23e = 6; f = 6; e >= f and (f > 5 or e < 1)
24g = 1; h = 8; g > 2 or (h >= 8 and g == 1)
25i = 4; j = 2; (i < 3 and j < 3) or (i >= 4 and j <= 2)

Überprüfung

  1. Sie wissen, wie logische Ausdrücke ausgewertet werden
NrAusdruckWert
1a = 5; a == 5True
2b = 3; b < 10True
3c = 7; c != 2True
4d = 1; d >= 1True
5e = 9; e < 3 or e > 3True
6x = 4; x == 4 and x > 2True
7y = 8; y < 5 or y > 6True
8z = 2; z != 2 or z <= 2True
9k = 10; k > 5 and k < 9False
10m = 0; m == 0 or m < 0True
11p = 6; p > 3 and p <= 6True
12q = 12; q < 10 or q >= 12True
13r = 5; r == 5 and r != 4True
14s = 7; s < 3 and s > 1False
15t = 3; t <= 3 or t > 10True
16a = 4; b = 9; a < b and b > 5True
17c = 2; d = 2; c == d or d > 3True
18e = 8; f = 1; e < f or f < 2True
19g = 7; h = 7; g >= h and g == hTrue
20i = 5; j = 3; i < j or j < iTrue
21a = 3; b = 10; a < 5 and (b > 8)True
22c = 9; d = 4; (c == 9 and d != 4) or d < 2False
23e = 6; f = 6; e >= f and (f > 5 or e < 1)True
24g = 1; h = 8; g > 2 or (h >= 8 and g == 1)True
25i = 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
1Frage nach der Temperatur. Wenn Temperatur unter 10, gib «kalt» aus.
2Frage nach den Schritten. Wenn Schritte über 10000, gib «Ziel erreicht» aus.
3Frage nach einem Punktestand. Wenn Punkte gleich 0, gib «Neu starten» aus.
4Frage nach einer Uhrzeit. Wenn Stunde kleiner als 7, gib «früh» aus.
5Frage, ob heute Regen gemeldet ist («ja»/«nein»). Wenn «ja», gib «Schirm mitnehmen» aus.
6Frage nach dem Kontostand. Wenn Stand negativ, gib «Achtung Minus» aus.
7Frage, ob jemand Hunger hat («ja»/«nein»). Wenn ja, schlag einen Snack vor.
8Frage nach dem Alter. Unter 16: «Keine Mofa-Prüfung», sonst «Möglich».
9Frage nach Akku-Prozent. Unter 20: «Laden», sonst «Alles ok».
10Frage nach Tageszeit («morgen»/«abend»). Morgen: «Guten Morgen», sonst «Guten Abend».
11Frage nach Schlafstunden. Unter 7: «Zu wenig», sonst «Genug».
12Frage nach Budget und Preis. Wenn Preis ≤ Budget: «Kaufbar», sonst «Zu teuer».
13Frage nach Temperatur. Unter 0: «Gefrierpunkt», sonst «Über Null».
14Frage nach Schulnote 1–6. 5.5 oder drüber: «Sehr gut», zwischen 4 und 5: «Ok», sonst «Verbessern».
15Frage nach Wetter («sonne», «regen», «schnee»). Gib passende Empfehlung.
16Frage nach Verkehrslage («frei», «stau», «baustelle»). Gib Hinweis.
17Frage nach Stimmung (1–10). ≤3: «schlechter Tag», ≤7: «ok», sonst «top».
18Zeit und Lust abfragen. Beides «ja»: «Komm mit». Nur Lust: «Zu wenig Zeit». Sonst: «Vielleicht später».
19Temperatur einteilen. <0: «Winter», 0–20: «Übergang», >20: «Sommer».
20Prüfen: Geld >20 oder Abo = «ja». Falls ja: «Eintritt möglich», sonst «Nicht genug».

Überprüfung

  1. Sie wissen, wie Bedingungen gestellt werden

Musterlösungen:

Nr.AufgabeMusterlösung
1Frage nach der Temperatur. Wenn Temperatur unter 10, gib «kalt» aus.t = int(input(«Temp: «))
if t < 10:
 print(«kalt»)
2Frage nach den Schritten. Wenn Schritte über 10000, gib «Ziel erreicht» aus.s = int(input(«Schritte: «))
if s > 10000:
 print(«Ziel erreicht»)
3Frage nach einem Punktestand. Wenn Punkte gleich 0, gib «Neu starten» aus.p = int(input(«Punkte: «))
if p == 0:
 print(«Neu starten»)
4Frage nach einer Uhrzeit. Wenn Stunde kleiner als 7, gib «früh» aus.h = int(input(«Stunde: «))
if h < 7:
 print(«früh»)
5Frage, ob heute Regen gemeldet ist («ja»/«nein»). Wenn «ja», gib «Schirm mitnehmen» aus.r = input(«Regen? «)
if r == «ja»:
 print(«Schirm mitnehmen»)
6Frage nach dem Kontostand. Wenn Stand negativ, gib «Achtung Minus» aus.k = float(input(«Kontostand: «))
if k < 0:
 print(«Achtung Minus»)
7Frage, ob jemand Hunger hat («ja»/«nein»). Wenn ja, schlag einen Snack vor.h = input(«Hunger? «)
if h == «ja»:
 print(«Hol dir einen Snack»)
8Frage 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»)
9Frage nach Akku-Prozent. Unter 20: «Laden», sonst «Alles ok».p = int(input(«Akku: «))
if p < 20:
 print(«Laden»)
else:
 print(«Alles ok»)
10Frage nach Tageszeit («morgen»/«abend»). Morgen: «Guten Morgen», sonst «Guten Abend».t = input(«Tageszeit: «)
if t == «morgen»:
 print(«Guten Morgen»)
else:
 print(«Guten Abend»)
11Frage nach Schlafstunden. Unter 7: «Zu wenig», sonst «Genug».s = int(input(«Schlaf: «))
if s < 7:
 print(«Zu wenig»)
else:
 print(«Genug»)
12Frage 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»)
13Frage nach Temperatur. Unter 0: «Gefrierpunkt», sonst «Über Null».t = int(input(«Temp: «))
if t < 0:
 print(«Gefrierpunkt»)
else:
 print(«Über Null»)
14Frage 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»)
15Frage 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»)
16Frage 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»)
17Frage 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»)
18Zeit 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»)
19Temperatur 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»)
20Prü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»)