Mit Verzweigungen können Code-Blöcke nur unter bestimmten Bedingungen ausgeführt werden. Eine Bedingung ist ein Ausdruck der True oder False ergibt.

# Bedingungen

Um zu entscheiden, ob ein Code-Block ausgeführt werden soll, wird immer eine Bedingung überprüft. Dies kann eine Variable, ein Unterprogramm oder auch ein mathematischer Ausdruck sein.

  • Variablen vom Typ bool haben den Wert True oder False (Codebeispiel Zeile 1)
  • Zudem gibt es Unterprogramme welche einen Wahrheitswert zurückgeben (Codebeispiel Zeilen 3 und 4)
  • Zahlen können mit den in der folgenden Tabelle aufgeführten Vergleichsoperatoren verglichen werden (Codebeispiel Zeilen 6 und 7):
Name Mathematisch Python-Code
grösser <
kleiner >
grösser gleich <=
kleiner gleich >=
gleich ==
ungleich !=
Vergleichsoperatoren
fuellen = True              # Eigene Variable mit Wahrheitswert setzen

turtle.distance(0,0) > 100  # True wenn Turtle weiter als 100 vom Ursprung entfernt ist
turtle.isdown()             # True wenn der Stift der Turtle runtergefahren ist

x > 12                      # True wenn x grösser als 12
y <= x                      # True wenn y kleiner oder gleich wie x
1
2
3
4
5
6
7

# Wenn-dann (if)

Wenn-Dann
Wenn-Dann

Wenn Bedingung wahr, dann mach dies

# Syntax

if True/False:
   mach_etwas()

mach_weiter()
1
2
3
4
Zeile 1
True/False wird ersetzt mit Ausdruck der True oder False ergibt
Zeile 2
mach_etwas() wird ersetzt mit beliebigem Code.
Wird nur ausgeführt wenn der obige Ausdruck True ergibt.
Ist eingerückt.
Zeile 4
mach_weiter() wird ersetzt mit Code der immer ausgeführt wird.
Ist nicht mehr eingerückt.

# Beispiel

Die Turtle bewegt sich zufällig, mit leichtem Rechtsdrall, von Startpunkt weg. Sobald sie aber weiter als 100 Pixel vom Nullpunkt entfernt ist, geht sie dorthin zurück.

import turtle, random

zahlen = range(1,100,1)

for zahl in zahlen:
    if turtle.distance(0,0) > 100:
        turtle.penup()
        turtle.goto(0,0)
        turtle.pendown()
    winkel = random.randint(-10,20)
    turtle.right(winkel)
    turtle.forward(10)
    
turtle.penup()
turtle.goto(0,0)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ab Zeile 5
for-in mit 200 Wiederholungen
Zeilen 6-9
if-Block – wenn die Turtle zu weit weg ist, dann geht sie zum Start zurück
Zeilen 10-12
gehört nicht mehr zum if-Block, ist aber hoch Teil der for-in-Schleife, wird also 100x ausgeführt
Zeilen 14 und 15
ausserhalb der for-in-Schleife – wird am Schluss 1x ausgeführt (die Turtle fährt ohne zu zeichnen in die Mitte zurück)

Aufgabe

  1. erstelle ein neues Python-Skript blume.py, übernimm den Code des obenstehenden Beispiels und starte das Programm
  2. erhöhe die Anzahl Wiederholungen, so dass das Ergebniss etwas schöner aussieht
  3. erweitere das Programm, so dass die «Blätter» gefüllt gezeichnet werden. Verwende dazu die folgenden Befehle:
    • turtle.fillColor("Farbe") («Farbe» ersetzen!)
    • turtle.begin_fill()
    • turtle.end_fill()

# Wenn-dann-sonst (if-else)

Wenn-dann-sonst
Wenn-dann-sonst

Wenn Bedingung wahr, dann mach dies, sonst mach das

if True/False:
   mache_dies()
else:
   mache_das()
1
2
3
4

# Beispiel

Wir versuchen ein Schachbrettmuster zu zeichnen. Dies erreichen wir durch zwei verschachtelte Schleifen die jeweils von 0 bis 7 zählen. Die Farbe des aktuellen Feldes kann aus den Koordinaten berechnet werden: Zählen wir beide Koordinaten zusammen, so ist die Summe gerade für schwarze Felder und ungerade für weisse. (Gerade/ungerade kann man mit dem Rest der Division durch 2 bestimmen!)

import turtle

KACHEL = 20
turtle.speed(0)

def quadrat(groesse):
    turtle.forward(groesse)
    turtle.left(90)
    turtle.forward(groesse)
    turtle.left(90)
    turtle.forward(groesse)
    turtle.left(90)
    turtle.forward(groesse)
    turtle.left(90)

for y in range(0,8,1):
    for x in range(0,8,1):
        schwarz = (x+y)%2 == 0
        if schwarz:
            turtle.begin_fill()
            quadrat(KACHEL)
            turtle.end_fill()
        else:
            quadrat(KACHEL)
        turtle.forward(KACHEL)
    turtle.backward(8*KACHEL)
    turtle.left(90)
    turtle.forward(KACHEL)
    turtle.right(90)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

Aufgabe

  1. erstelle ein neues Python-Skript schachbrett.py, übernimm den Code des obenstehenden Beispiels und starte das Programm
  2. stelle die Turtle zu Beginn in die untere linke Ecke und passe die Kachel-Grösse so an, dass das Schachbrett das gesamte Fenster bedeckt.

Aufgabe (optional)

  1. erstelle ein neues Python-Skript farbenbrett.py, übernimm den Code des obenstehenden Beispiels und starte das Programm
  2. ändere das Programm, so dass nicht zwischen den zwei Farben Schwarz und Weiss, sondern zwischen den drei Grundfarben Rot, Grün und Blau abgewechselt wird.
Letzte Änderung: 14.1.2020, 10:36:26