Der Boolean-Wert
Bisher kennst du Zahlen und Text als Datentypen. Aber wie speichert ein Programm die Antwort auf eine Ja/Nein-Frage — z. B. „Ist die Zahl größer als 0?" Dafür gibt es einen eigenen Datentyp: den Boolean.
Nur zwei mögliche Werte
Ein Boolean (bool) kennt nur True oder False — nichts dazwischen. In Python werden diese Wörter groß geschrieben. Ein Boolean entsteht meist aus einem Vergleich.
gleich einen Boolean, der angibt, ob a und b gleich groß sind. Gib gleich aus.a = 5 b = 5 gleich = a == b print(gleich)
Einzelne Bedingungen
Ein Boolean allein ist noch nicht besonders nützlich. Spannend wird es, wenn das Programm je nach diesem Wert unterschiedlich reagiert — mit if und else.
Vergleichsoperatoren
| Operator | Bedeutung | Beispiel |
|---|---|---|
| > | größer als | x > 0 |
| < | kleiner als | x < 0 |
| >= | größer oder gleich | note >= 1 |
| <= | kleiner oder gleich | note <= 4 |
| == | gleich (Vergleich!) | x == 0 |
| != | ungleich | x != 0 |
= weist einen Wert zu (x = 5),== vergleicht zwei Werte (x == 5).Ein häufiger Fehler ist, die beiden zu verwechseln.
note = 3 „bestanden" ausgegeben wird.note = 3
if note <= 4:
print("bestanden")
else:
print("nicht bestanden")elif, sodass bei note == 1 stattdessen „Bestnote!" ausgegeben wird (die anderen beiden Fälle bleiben wie sie sind).note = 1
if note == 1:
print("Bestnote!")
elif note <= 4:
print("bestanden")
else:
print("nicht bestanden")Verknüpfte Bedingungen
Manchmal reicht eine einzelne Bedingung nicht. Soll etwas nur passieren, wenn zwei Dinge gleichzeitig gelten? Oder wenn mindestens eines von beiden gilt? Dafür gibt es and, or und not.
and, or, not
and — wahr, wenn beide Bedingungen wahr sind: x > 0 and y > 0
or — wahr, wenn mindestens eine Bedingung wahr ist: x > 0 or y > 0
not — kehrt eine Bedingung um: not (x > 0)
Hauptübung: Zufallspunkte-Canvas
Wir erzeugen viele zufällige Punkte im Bereich von -100 bis 100 (für x und y) und färben jeden Punkt je nach einer Bedingung ein. Du siehst und schreibst das vollständige Skript — nur das eigentliche Zeichnen auf dem Bildschirm läuft im Hintergrund.
farbe = ... in der Schleife dagegen ist der Python-Teil, den du komplett siehst und veränderst. (Noch ohne Funktionen — die lernst du in einem späteren Block.)if x < 0:
farbe = "rot"
else:
farbe = "blau"if y < 0:
farbe = "rot"
else:
farbe = "blau"and. Rot erscheint nur, wenn beide Bedingungen gleichzeitig gelten.if x < 0 and y < 0:
farbe = "rot"
else:
farbe = "blau"if / elif / elif / else.if x > 0 and y > 0:
farbe = "rot"
elif x < 0 and y > 0:
farbe = "blau"
elif x < 0 and y < 0:
farbe = "gruen"
else:
farbe = "gelb"if y < x:
farbe = "rot"
else:
farbe = "blau""rot", wenn x + y > 0, sonst "blau".if x + y > 0:
farbe = "rot"
else:
farbe = "blau"%-Operator (Modulo) liefert den Rest einer Division — dadurch wiederholt sich das Muster alle 40 Einheiten. Ändere den Code danach so, dass die Streifen horizontal statt vertikal verlaufen. Welche Variable musst du dafür ersetzen?if y % 40 > 20:
farbe = "rot"
else:
farbe = "blau"60 auf 30 und beobachte den Effekt.if x*x + y*y < 30*30:
farbe = "rot"
else:
farbe = "blau"Stufe 8 — Kombinationen
Jetzt kommt die eigentliche Pointe von and/or: Bedingungen lassen sich beliebig kombinieren. Diesmal nur die Aufgabenstellung — schreibe die komplette Bedingung selbst.
x > 0). Links sollen alle Punkte "blau" sein.if x > 0 and x % 40 > 20:
farbe = "rot"
else:
farbe = "blau"x > 0 und y > 0). Alle anderen Punkte sollen "blau" sein.if x*x+y*y < 60*60 and x>0 and y>0:
farbe = "rot"
else:
farbe = "blau""rot", wenn x > 0 oder y > 0 gilt (or), sonst "blau". Vergleiche das Ergebnis mit Stufe 3 — welche Fläche ist größer?if x > 0 or y > 0:
farbe = "rot"
else:
farbe = "blau"Grundstrukturen kombiniert
Verzweigung und Schleife kennst du bereits aus Klasse 8. Jetzt kombinieren wir sie mit den neuen — auch verknüpften — Bedingungen.
zahlen alle geraden Zahlen in einer neuen Liste gerade.zahlen = [3, 8, 15, 22, 9, 4, 17, 6]
gerade = []
for zahl in zahlen:
if zahl % 2 == 0:
gerade.append(zahl)
print(gerade)punktzahlen „bestanden" haben — mindestens 50 und höchstens 100 Punkte. Speichere das Ergebnis in anzahl.punktzahlen = [45, 78, 102, 50, 33, 91, 100, 12, 67]
anzahl = 0
for p in punktzahlen:
if p >= 50 and p <= 100:
anzahl += 1
print(anzahl)Teste dein Wissen
Sieben Fragen zu allem, was in diesem Block dran war.
5 > 3?= und ==?x > 0 and y > 0 wahr?x > 0 or y > 0 wahr?not (x > 0)?17 % 5 zurück?Zum Nachdenken
„Ein Programm, das nur eine einzige starre Bedingung kennt, kann kaum auf die Wirklichkeit reagieren. Erst durch verknüpfte Bedingungen entstehen Regeln, die so differenziert sind wie Entscheidungen im echten Leben."
Diskutiert in der Klasse: Wo im Alltag begegnen euch verknüpfte Bedingungen (and/or), ohne dass ihr sie bisher als solche erkannt habt? Fällt euch eine Regel ein, die sich nur mit and, nur mit or, oder mit beidem beschreiben lässt?