Wenn — Sonst —
Entscheiden

Wie Computer Bedingungen prüfen und verschiedene Wege einschlagen — sichtbar gemacht mit tausenden bunter Punkte.

Klasse 7 if / else TigerJython Bedingte Anweisungen
Modul 01

Was ist eine Bedingung?

🚦

Die Ampel

Wenn die Ampel rot zeigt → stehen bleiben. Sonst → gehen." Die Ampel prüft eine Bedingung und führt je nach Ergebnis eine andere Aktion aus — genau wie if / else.

🌡️

Das Wetter

Wenn es regnet → Schirm. Sonst wenn es kalt ist → Jacke. Sonst → nichts." Mehrere Bedingungen hintereinander — das ist if / elif / else.

🎮

Das Videospiel

Wenn Leben = 0 → Game Over. Sonst wenn Punkte > 1000 → nächstes Level. Sonst → weiterspielen." Computer treffen Millionen solcher Entscheidungen pro Sekunde.

🚶

Der Schulweg

Wenn die Entfernung ≤ 1 km → zu Fuß. Sonst wenn ≤ 5 km → Fahrrad. Sonst → Bus." Eine Variable, drei Wege — das ist if / elif / else im Alltag.

Definition
Eine bedingte Anweisung prüft, ob eine Bedingung wahr oder falsch ist, und führt dann verschiedene Anweisungen aus — je nach Ergebnis.

Klicke auf eine Karte für mehr Details.

🔀 if

Führt einen Block nur aus, wenn die Bedingung wahr ist. Sonst passiert nichts.

entfernung = 2.5 # Kilometer if entfernung > 2: print("Nicht zu Fuß gehen.")Wenn entfernung > 2 wahr ist, wird print ausgeführt. Sonst nichts. Das Einrücken zeigt, was zum Block gehört.
↓ Details anzeigen

🔀 if / else

Zwei Wege: einer wird immer ausgeführt — entweder der if-Block oder der else-Block.

entfernung = 2.5 if entfernung <= 2: print("Du gehst zu Fuß.") else: print("Fahrrad oder Bus.")Genau einer der beiden Blöcke läuft durch — nie beide, nie keiner.
↓ Details anzeigen

🔀 if / elif / else

Mehrere Bedingungen hintereinander — der erste wahre Zweig wird ausgeführt.

entfernung = 2.5 if entfernung <= 1: print("Du gehst zu Fuß.") elif entfernung <= 5: print("Du fährst Fahrrad.") else: print("Du fährst Bus.")elif = „else if" = „sonst wenn". Beliebig viele davon möglich.
↓ Details anzeigen

⚖️ Vergleichsoperatoren

Bedingungen bestehen aus Vergleichen — das Ergebnis ist immer wahr oder falsch.

OperatorBedeutungBeispiel
==gleichentfernung == 0
!=ungleichentfernung != 0
>größer alsentfernung > 2
<kleiner alsentfernung < 1
>=größer gleichentfernung >= 5
<=kleiner gleichentfernung <= 2
↓ Details anzeigen

⚠️ = vs. ==

x = 3 # Zuweisung: speichert 3 in x
if x == 5: # Vergleich: ist x gleich 5?
    ...

= speichert einen Wert in eine Variable — wie eine Box befüllen.
== vergleicht zwei Werte — wie eine Waage abwiegen.
Im if immer == verwenden!

= weist zu, == vergleicht
Programmfluss
Bedingung
prüfen
Wahr →
Block A
/
Falsch →
Block B
Weiter im
Programm

Genau ein Zweig wird ausgeführt — nie beide, nie keiner (bei if/else).

Syntax & Einrücken
if entfernung <= 1:← Bedingung mit Doppelpunkt
print("Du gehst zu Fuß.")← wahr-Zweig (4 Leerzeichen!)
elif entfernung <= 5:← weitere Bedingung
print("Du fährst Fahrrad.")← elif-Zweig
else:← kein eigener Ausdruck
print("Du fährst Bus.")← falsch-Zweig
Modul 02

TigerJython — Bedingungen sichtbar

Von der Ampel zur Punktewolke — wir erkunden if/else mit interaktiven Beispielen.

🐢
TigerJython im Browser öffnenKein Download nötig — läuft direkt im Browserfenster.
▶ TigerJython öffnen
Beispiel B1

if / else — Die Ampel

Die Schildkröte schreibt „STOP!" wenn color == "red" — sonst „GO!".

clear("lightgrey")Löscht den Canvas und setzt die Hintergrundfarbe auf hellgrau.
setFontSize(20)Setzt die Schriftgröße für label().
setColor(color)Setzt Stift- und Füllfarbe. Wir übergeben eine Variable — die Farbe kommt aus color.
label("STOP!")Schreibt Text an die aktuelle Position der Schildkröte.
color = ← Wert wählen, dann ↺ + ▶
Beispiel B1 — if/else · Ampel
from gturtle import *
makeTurtle()
clear("lightgrey")
hideTurtle()
setFontSize(20)
color = "red"
setColor(color)
if color == "red":
    label("STOP!")
else:
    label("GO!")
Aufgabe B1

Ampelfarbe ändern

Was gibt das Programm aus, wenn du color = "blue" setzt? Begründe deine Antwort, bevor du es ausprobierst.

Beispiel B2

if / elif / else — Drei Ampelzustände

Jetzt kommt elif dazu: gelb bedeutet „SLOW!". Probiere alle drei Zustände direkt aus:

elif color == "yellow":„Sonst wenn" — wird nur geprüft, wenn das erste if falsch war.
color = ← Wert wählen, dann ↺ + ▶
Beispiel B2 — if/elif/else · Drei Zustände
from gturtle import *
makeTurtle()
clear("lightgrey")
hideTurtle()
setFontSize(20)
color = "red"
setColor(color)
if color == "red":
    label("STOP!")
elif color == "yellow":
    label("SLOW!")
else:
    label("GO!")
Aufgabe B2

Vierter Zustand

Füge einen weiteren elif-Zweig hinzu: Wenn color == "orange", soll „CAUTION!" ausgegeben werden. Wo genau fügst du ihn ein?

Beispiel B3

random kennenlernen — Punkte überall

Bevor wir Bedingungen mit Punkten kombinieren, lernen wir randint kennen. Es erzeugt zufällige ganze Zahlen. Wir streuen 5000 Punkte — noch ohne Farbbedingung, alle gleich schwarz.

from random import randintLädt die Zufallsfunktion. Danach steht randint(a, b) zur Verfügung.
randint(-200, 200)Gibt eine zufällige ganze Zahl zwischen −200 und 200 zurück — jedes Mal neu.
setPos(x, y)Setzt die Schildkröte direkt an Position (x, y) ohne eine Linie zu zeichnen.
dot(3)Zeichnet einen gefüllten Punkt (Durchmesser 3 Pixel) an der aktuellen Position.
Beispiel B3 — random · Punkte überall
from gturtle import *
from random import randint
makeTurtle()
speed(-1)
hideTurtle()
repeat 5000:
    x = randint(-200, 200)
    y = randint(-200, 200)
    setPos(x, y)
    dot(3)
Aufgabe B3

Punktedichte beobachten

Verändere randint(-200, 200) auf randint(-100, 100). Was passiert mit dem Muster? Warum sind die Punkte jetzt nicht mehr gleichmäßig verteilt?

Beispiel B4

Vertikale Hälfte — if x > 0

Jetzt kommt if/else ins Spiel: Liegt der Punkt rechts (x > 0) → rot. Links → blau. Die Bedingung teilt das Quadrat genau in der Mitte.

Beispiel B4 — Vertikale Hälfte
from gturtle import *
from random import randint
makeTurtle()
speed(-1)
hideTurtle()
repeat 5000:
    x = randint(-200, 200)
    y = randint(-200, 200)
    if x > 0:
        setPenColor("red")
    else:
        setPenColor("blue")
    setPos(x, y)
    dot(3)
Aufgabe B4

Grenze verschieben

Ändere if x > 0 auf if x > 80. Was verändert sich am Muster? Wie groß ist jetzt der rote Bereich im Vergleich zum blauen?

Beispiel B5

Horizontale Hälfte — if y > 0

Dieselbe Idee — jetzt prüfen wir die y-Koordinate. Oben → grün, unten → orange.

Beispiel B5 — Horizontale Hälfte
from gturtle import *
from random import randint
makeTurtle()
speed(-1)
hideTurtle()
repeat 5000:
    x = randint(-200, 200)
    y = randint(-200, 200)
    if y > 0:
        setPenColor("green")
    else:
        setPenColor("orange")
    setPos(x, y)
    dot(3)
Aufgabe B5

Kombinieren

Was passiert, wenn du if y > 0 auf if y > x änderst? Skizziere das erwartete Muster auf Papier — dann überprüfen.

Aufgabe B5b — Vertikaler Streifen

Nur ein schmaler Streifen

Ändere die Bedingung so, dass nur ein vertikaler Streifen in der Mitte farbig wird — alle Punkte mit -20 < x < 20 in rot, alle anderen in blau. Tipp: Du brauchst and um zwei Bedingungen zu kombinieren.

💡 if x > -20 and x < 20:
Beispiel B6

Diagonale — if y > x

Wir vergleichen x und y miteinander. Die Trennlinie ist die Diagonale y = x — alle Punkte darüber werden blau, alle darunter rot.

Beispiel B6 — Diagonale (↗)
from gturtle import *
from random import randint
makeTurtle()
speed(-1)
hideTurtle()
repeat 5000:
    x = randint(-200, 200)
    y = randint(-200, 200)
    if y > x:
        setPenColor("blue")
    else:
        setPenColor("red")
    setPos(x, y)
    dot(3)
Beispiel B7

Gegendiagonale — if y > -x

Die andere Diagonale: von unten-links nach oben-rechts. Das Muster sieht ähnlich aus wie in L6, aber um 90° gedreht.

Beispiel B7 — Gegendiagonale (↘)
from gturtle import *
from random import randint
makeTurtle()
speed(-1)
hideTurtle()
repeat 5000:
    x = randint(-200, 200)
    y = randint(-200, 200)
    if y > -x:
        setPenColor("teal")
    else:
        setPenColor("orange")
    setPos(x, y)
    dot(3)
Beispiel B8

Vier Quadranten — if / elif / else mit and

Mit and können wir zwei Bedingungen gleichzeitig prüfen. So entstehen vier Bereiche — die vier Quadranten des Koordinatensystems.

if A and B:Beide Bedingungen müssen wahr sein. x > 0 and y > 0 = rechts UND oben.
Beispiel B8 — Vier Quadranten
from gturtle import *
from random import randint
makeTurtle()
speed(-1)
hideTurtle()
repeat 5000:
    x = randint(-200, 200)
    y = randint(-200, 200)
    if x > 0 and y > 0:
        setPenColor("red")
    elif x < 0 and y > 0:
        setPenColor("blue")
    elif x < 0 and y < 0:
        setPenColor("green")
    else:
        setPenColor("orange")
    setPos(x, y)
    dot(3)
Aufgabe B8

Farben tauschen

Tausche die Farben so, dass gegenüberliegende Quadranten dieselbe Farbe haben (wie ein Schachbrett). Welche zwei Bedingungen müssen jeweils dieselbe Farbe bekommen?

Beispiel B9

Raute — beide Diagonalen kombiniert

Wir nutzen beide Diagonalen gleichzeitig. Das teilt das Quadrat in vier Dreiecke — oben, unten, links, rechts. Das Ergebnis sieht aus wie eine Raute.

Beispiel B9 — Raute (4 Ecken)
from gturtle import *
from random import randint
makeTurtle()
speed(-1)
hideTurtle()
repeat 5000:
    x = randint(-200, 200)
    y = randint(-200, 200)
    if y > x and y > -x:
        setPenColor("blue")
    elif y < x and y < -x:
        setPenColor("red")
    elif x < 0:
        setPenColor("green")
    else:
        setPenColor("yellow")
    setPos(x, y)
    dot(3)
Beispiel B10

Kreisscheibe — x*x + y*y < 130*130

Aus dem Matheunterricht: Der Abstand eines Punktes vom Ursprung ist √(x²+y²). Ein Punkt liegt innerhalb eines Kreises mit Radius r, wenn gilt: x*x + y*y < r*r.

Beispiel B10 — Kreisscheibe
from gturtle import *
from random import randint
makeTurtle()
speed(-1)
hideTurtle()
repeat 5000:
    x = randint(-200, 200)
    y = randint(-200, 200)
    if x*x + y*y < 130*130:
        setPenColor("teal")
    else:
        setPenColor("blue")
    setPos(x, y)
    dot(3)
Aufgabe B10

Radius ändern

Ändere 130*130 auf verschiedene Werte (z.B. 80*80 oder 180*180). Welcher Radius füllt ungefähr die Hälfte des Quadrats?

Beispiel B11

Streifen — der Modulo-Operator %

Der Operator % gibt den Rest einer Division zurück. x % 80 ist immer zwischen 0 und 79. Mit if x % 80 < 40 entsteht alle 80 Pixel ein Streifenwechsel.

x % 80Rest von x ÷ 80. Beispiel: 100 % 80 = 20, weil 80 einmal passt, Rest 20.
Beispiel B11 — Vertikale Streifen
from gturtle import *
from random import randint
makeTurtle()
speed(-1)
hideTurtle()
repeat 5000:
    x = randint(-200, 200)
    y = randint(-200, 200)
    if x % 80 < 40:
        setPenColor("blue")
    else:
        setPenColor("yellow")
    setPos(x, y)
    dot(3)
Aufgabe B11

Streifenrichtung ändern

Ändere x % 80 auf y % 80. Was passiert? Versuche anschließend, durch gleichzeitige Verwendung von x und y horizontale UND vertikale Streifen zu erzeugen.

Beispiel B12 ⭐ Bonus

Schachbrett — Modulo kombiniert

Das Schachbrettmuster entsteht durch Kombination von x- und y-Streifen. Wir berechnen die „Feldnummer" in x- und y-Richtung und prüfen, ob die Summe gerade oder ungerade ist.

# + 200 verschiebt -200..200 nach 0..400
sx = (x + 200) // 80 # // = ganzzahlige Division← Welches Feld in x?
sy = (y + 200) // 80← Welches Feld in y?
if (sx + sy) % 2 == 0:← gerade Summe → eine Farbe
else:← ungerade → andere Farbe
Beispiel B12 — Schachbrett
from gturtle import *
from random import randint
makeTurtle()
speed(-1)
hideTurtle()
repeat 5000:
    x = randint(-200, 200)
    y = randint(-200, 200)
    sx = (x + 200) // 80
    sy = (y + 200) // 80
    if (sx + sy) % 2 == 0:
        setPenColor("black")
    else:
        setPenColor("red")
    setPos(x, y)
    dot(3)
Aufgabe B12 — Bonus

Feldgröße ändern

Ändere 80 auf 50. Wie viele Felder entstehen jetzt? Versuche auch ein 4-Farben-Schachbrett: ersetze % 2 durch % 4 und verwende elif für 4 Farben.

Modul 03

Interaktive Aufgaben

Code sortieren

Bringe die Zeilen eines if/elif/else-Blocks in die richtige Reihenfolge.

    setPenColor("red")
elif x < 0 and y > 0:
if x > 0 and y > 0:
else:
    setPenColor("green")
    setPenColor("blue")
Lückentext

Fülle die Lücken: Ein Programm, das Punkte innerhalb eines Kreises (r=100) grün färbt, alle anderen rot.

from gturtle import *
from random import randint
makeTurtle()
speed(-1)
hideTurtle()
repeat 5000:
x = (-200, 200)
y = randint(-200, 200)
if x*x + y*y 10000:
setPenColor()
else:
setPenColor()
Stimmt das?

Klicke auf eine Aussage — stimmt sie oder nicht?

else braucht eine eigene Bedingung in Klammern."
Klicken zum Aufdecken
❌ Falsch
else hat keine eigene Bedingung — es gilt für alle Fälle, die kein vorheriges if/elif erfüllt haben.
== und = bedeuten dasselbe."
Klicken zum Aufdecken
❌ Falsch
= ist eine Zuweisung (speichert). == ist ein Vergleich (prüft). Häufiger Fehler!
„Bei if/else wird immer genau ein Zweig ausgeführt."
Klicken zum Aufdecken
✅ Richtig
Entweder if oder else — nie beide, nie keiner. Das ist der Unterschied zu einem einfachen if ohne else.
„Das Einrücken bei if-Blöcken ist nur für die Übersichtlichkeit."
Klicken zum Aufdecken
❌ Falsch
In Python/TigerJython ist das Einrücken Pflicht — der Computer erkennt daran, welche Zeilen zum Block gehören.
„Man kann beliebig viele elif-Zweige schreiben."
Klicken zum Aufdecken
✅ Richtig
Ja — in L8 haben wir bereits drei Zweige gesehen. Es gibt keine Obergrenze.
x > 0 and y > 0 ist wahr, wenn nur x > 0 gilt."
Klicken zum Aufdecken
❌ Falsch
and verlangt, dass beide Bedingungen wahr sind. Nur eine reicht nicht.
Modul 04
Quiz — Bedingte Anweisungen
7 Fragen · Klicke auf deine Antwort
Frage 1 / 7
Was gibt 7 % 3 zurück?
Frage 2 / 7
Welcher Operator prüft, ob zwei Werte gleich sind?
Frage 3 / 7
Was gibt das Programm aus, wenn color = "blue"?
if color == "red": label("STOP!") else: label("GO!")
Frage 4 / 7
Wie viele Zweige werden bei einem if/else ausgeführt?
Frage 5 / 7
Ein Punkt liegt bei x=−80, y=120. Welche Bedingung ist wahr?
Frage 6 / 7
Was bedeutet x*x + y*y < 130*130 geometrisch?
Frage 7 / 7
Welche Zeile gehört nicht in den if-Block?
0 / 7
Punkte
Glossar

Begriffe aufdecken

Klicke auf eine Karte, um die Definition zu sehen.

if
Klicken ↓
Schlüsselwort
Prüft eine Bedingung. Der eingerückte Block wird nur ausgeführt, wenn sie wahr ist.
else
Klicken ↓
Schlüsselwort
„Sonst" — wird ausgeführt, wenn alle vorherigen Bedingungen falsch waren. Keine eigene Bedingung.
elif
Klicken ↓
Schlüsselwort
„Sonst wenn" — weitere Bedingung, wird nur geprüft wenn alle vorherigen falsch waren.
==
Klicken ↓
Vergleichsoperator
Prüft ob zwei Werte gleich sind. Nicht verwechseln mit = (Zuweisung)!
and
Klicken ↓
Operator
Verknüpft zwei Bedingungen. Wahr nur wenn beide wahr sind.
% Modulo
Klicken ↓
Operator
Gibt den Rest einer Division zurück. 10 % 3 = 1 (3×3=9, Rest 1).
randint
Klicken ↓
Funktion
Aus dem Modul random. Gibt eine zufällige ganze Zahl zwischen zwei Grenzen zurück.
dot()
Klicken ↓
TigerJython
Zeichnet einen gefüllten Punkt an der aktuellen Position. dot(3) = Durchmesser 3 Pixel.
Für zuhause

Hausaufgabe

🏠 Hausaufgaben

H1 — Eigenes Muster

Öffne webtigerjython.ethz.ch und schreibe ein Programm mit 5000 Zufallspunkten, das ein eigenes Muster erzeugt — kombiniere mindestens zwei Bedingungen mit and. Notiere: Welche Bedingung du verwendet hast und was das Muster bedeutet.

H2 — Bedingungen in Sprache

Beschreibe drei Alltagssituationen als if/elif/else-Struktur auf Deutsch — nicht als Code. Mindestens ein elif-Fall pro Situation. Beispiel: Welche Kleidung ziehst du an (abhängig von Temperatur und Regen)?

Zum Nachdenken

„Jede Entscheidung, die ein Computer trifft, steckt als if/else im Code."
🤔 Welche Entscheidungen trifft dein Smartphone täglich — als bedingte Anweisungen formuliert?
🤔 Warum kann man mit zufälligen Punkten so viel über Geometrie lernen?
🤔 Was wäre, wenn es kein if gäbe — was könnten Programme dann noch tun?