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 WertTrue
oderFalse
(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 | != |
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
2
3
4
5
6
7
# Wenn-dann (if
)
Wenn Bedingung wahr, dann mach dies
# Syntax
if True/False:
mach_etwas()
mach_weiter()
2
3
4
- Zeile 1
True/False
wird ersetzt mit Ausdruck derTrue
oderFalse
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)
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 «Blume»
- erstelle ein neues Python-Skript
blume.py
, übernimm den Code des obenstehenden Beispiels und starte das Programm - erhöhe die Anzahl Wiederholungen, so dass das Ergebniss etwas schöner aussieht
- 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 Bedingung wahr, dann mach dies, sonst mach das
if True/False:
mache_dies()
else:
mache_das()
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)
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 «Schachbrett»
- erstelle ein neues Python-Skript
schachbrett.py
, übernimm den Code des obenstehenden Beispiels und starte das Programm - 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.
Zusatzaufgabe «farbig»
- erstelle ein neues Python-Skript
farbenbrett.py
, übernimm den Code des obenstehenden Beispiels und starte das Programm - ä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.