Python · Klasse 10 · Block 2 von 4

Bedingungen &
Strukturen

Wie trifft ein Programm Entscheidungen? In diesem Block lernst du, wie man Ja/Nein-Werte speichert, einzelne Bedingungen formuliert und mehrere davon zu komplexeren Regeln verknüpft — angewendet auf Schleifen und Verzweigungen, die du schon kennst.

Alle Codebeispiele laufen direkt im Browser. Mit 📋 Kopieren kannst du den Code in Thonny einfügen und dort ausführen.

Thema 01

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.

Fertiges Beispiel — Boolean
Leicht
Erzeuge in gleich einen Boolean, der angibt, ob a und b gleich groß sind. Gib gleich aus.
a = 5
b = 5
gleich = a == b
print(gleich)
Thema 02

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

OperatorBedeutungBeispiel
>größer alsx > 0
<kleiner alsx < 0
>=größer oder gleichnote >= 1
<=kleiner oder gleichnote <= 4
==gleich (Vergleich!)x == 0
!=ungleichx != 0
⚠️= weist einen Wert zu (x = 5),
== vergleicht zwei Werte (x == 5).
Ein häufiger Fehler ist, die beiden zu verwechseln.
Fertiges Beispiel — if/else
Leicht
In Sachsen ist eine Note bis einschließlich 4 bestanden. Die Bedingung unten ist noch falsch — ändere sie, sodass bei note = 3 „bestanden" ausgegeben wird.
note = 3

if note <= 4:
    print("bestanden")
else:
    print("nicht bestanden")
Mittel
Ergänze den Code mit 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")
Thema 03

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)

Fertiges Beispiel — and

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.

🎨Wie die Punkte am Ende gezeichnet werden, ist bewusst eine Blackbox — reine Bildschirmtechnik, kein Python-Thema. Die Zeile 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.)
1Rechts / Links
Was musst du ändern, damit rot auf der linken Seite liegt statt rechts?
Fertiges Beispiel
if x < 0:
    farbe = "rot"
else:
    farbe = "blau"
2Oben / Unten
Was musst du ändern, damit rot unten liegt statt oben?
Fertiges Beispiel
if y < 0:
    farbe = "rot"
else:
    farbe = "blau"
3Quadranten
Führe das Skript einfach aus und beobachte: Diese Bedingung verknüpft Beispiel 1 und 2 mit and. Rot erscheint nur, wenn beide Bedingungen gleichzeitig gelten.
Fertiges Beispiel
3aZusatzaufgabe: unten links
Ändere die Bedingung, sodass diesmal unten links rot ist (statt oben rechts).
if x < 0 and y < 0:
    farbe = "rot"
else:
    farbe = "blau"
3bZusatzaufgabe: 4 Quadranten, 4 Farben
Jetzt alle vier Quadranten gleichzeitig, jeder in einer eigenen Farbe: oben rechts rot, oben links blau, unten links grün, unten rechts gelb. Ergänze die vier Fälle mit 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"
4Diagonale
Was musst du ändern, damit die andere Seite der Diagonale rot ist?
Fertiges Beispiel
if y < x:
    farbe = "rot"
else:
    farbe = "blau"
5Gegendiagonale
Jetzt ohne Vorlage: Schreibe die Bedingung so, dass die Punkte entlang der Gegendiagonale aufgeteilt werden — z. B. "rot", wenn x + y > 0, sonst "blau".
if x + y > 0:
    farbe = "rot"
else:
    farbe = "blau"
6Streifen
Führe das Skript zuerst so aus, wie es ist, und beobachte die vertikalen Streifen. Der %-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?
Fertiges Beispiel — vertikal
if y % 40 > 20:
    farbe = "rot"
else:
    farbe = "blau"
7Kreis (Bonus)
Diese Formel beschreibt einen Kreis mit Radius 60 (die Herleitung ist hier nicht wichtig). Ändere nur die Zahl 60 auf 30 und beobachte den Effekt.
Fertiges Beispiel
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.

8aStreifen nur rechts
Zeichne vertikale Streifen wie in Stufe 6, aber nur auf der rechten Seite (x > 0). Links sollen alle Punkte "blau" sein.
if x > 0 and x % 40 > 20:
    farbe = "rot"
else:
    farbe = "blau"
8bKreis nur im 1. Quadranten
Zeichne den Kreis aus Stufe 7 (Radius 60), aber nur im ersten Quadranten (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"
8cand vs. or
Male "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"
Thema 04

Grundstrukturen kombiniert

Verzweigung und Schleife kennst du bereits aus Klasse 8. Jetzt kombinieren wir sie mit den neuen — auch verknüpften — Bedingungen.

Mittel
Sammle aus 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)
Anspruchsvoll
Zähle, wie viele Schüler aus 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)
Quiz

Teste dein Wissen

Sieben Fragen zu allem, was in diesem Block dran war.

Frage 1 / 7
Welchen Datentyp hat das Ergebnis von 5 > 3?
Frage 2 / 7
Was ist der Unterschied zwischen = und ==?
Frage 3 / 7
Wann ist x > 0 and y > 0 wahr?
Frage 4 / 7
Wann ist x > 0 or y > 0 wahr?
Frage 5 / 7
Was macht not (x > 0)?
Frage 6 / 7
Was gibt 17 % 5 zurück?
Frage 7 / 7
Wie viele mögliche Werte kann ein Boolean annehmen?
0/7
Reflexion

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?