EINFÜHRUNG |
Was du im täglichen Leben unternimmst, hängt oft von gewissen Bedingungen ab. So entscheidest du dich je nach Wetter, wie du in die Schule fährst. Du sagst: "Falls es regnet, fahre ich mit dem Tram, sonst mit dem Fahrrad". Auch der Ablauf eines Programms kann von Bedingungen abhängig sein. Solche Programmverzweigungen auf Grund von bestimmten Bedingungen gehören zu den Grundstrukturen jeder Programmiersprache. Die Anweisungen nach if werden nur dann ausgeführt, wenn die Bedingung wahr ist, sonst werden die Anweisungen nach else ausgeführt. |
EINGABE ÜBERPRÜFEN |
from gturtle import * def square(sidelength): repeat 4: forward(sidelength) right(90) makeTurtle() s = inputInt("Enter the side length") if s < 300: square(s) else: print("The side length is too big") |
MEMO |
Die Anweisungen nach if werden nur dann ausgeführt, wenn die Bedingung wahr ist, sonst werden die Anweisungen nach else ausgeführt. Manchmal kommt es vor, das nur etwas gemacht wird, wenn die Bedingung erfüllt ist; sonst aber nichts passiert. Für diese Fälle kannst du den else-Block weglassen. Achte auf die Doppelpunkte nach der if-Bedingung und nach else, sowie auf die korrekte Einrückung der beiden Programmblöcke. |
MEHRFACHE AUSWAHL |
from gturtle import * def square(): repeat 4: forward(100) right(90) makeTurtle() n = inputInt("Enter a number: 1:red 2:green 3:yellow") if n == 1: setFillColor("red") elif n == 2: setFillColor("green") elif n == 3: setFillColor("yellow") else: setFillColor("black") square() fill(10, 10)
|
MEMO |
Es können mehrere Bedingungen nacheinander überprüft werden. Falls die Bedingung bei if nicht erfüllt ist, wird die Bedingung bei elif überprüft. elif ist eine Abkürzung von else if. Falls keine der elif-Bedingungen erfüllt ist werden die Anweisungen nach else ausgeführt. Es fällt dir sicher auf, dass das Prüfen auf Gleichheit in Python mit einem doppelten Gleichheitszeichen erfolgt. Dies ist etwas gewöhnungsbedürftig, aber nötig, da das einfache Gleichheitszeichen für Zuweisungen verwendet wird. Mit dem Befehl fill(x, y) können geschlossene Figuren mit der Füllfarbe gefüllt werden. Der Punkt (x, y) muss sich aber im Inneren der Figur befinden. |
FARBAUSWAHL, BOOLESCHE VARIABLEN |
Den Stern zeichnest du mit der Funktion star(), die neben der Grösse des Sterns auch einen Parameter hat, dessen Wert True oder False sein kann, und der bestimmt, ob der Stern gefüllt werden soll oder nicht. from gturtle import * makeTurtle() def star(size, filled): if filled: startPath() repeat 9: forward(size) left(175) forward(size) left(225) if filled: fillPath() clear("black") repeat 5: color = askColor("Color selection", "yellow") if color == None: break setPenColor(color) setFillColor(color) setRandomPos(400, 400) back(100) star(100, True)
|
MEMO |
Die Funktion askColor() hat einen Parameter für den Text in der Titelzeile und für die Farbe, die als Standardwert ausgewählt ist. Die Funktion gibt beim Klicken des OK-Buttons die ausgewählte Farbe und beim Klicken des Abbrechen-Buttons den speziellen Wert None zurück. Du kannst mit einer if-Anweisung auf diesen Wert testen und die repeat-Schleife mit break abbrechen. Eine Variable oder einen Parameter, der die Werte True oder False annehmen kann, nennt man eine boolesche Variable bzw. einen booleschen Parameter [mehr... Der Name stammt vom Mathematiker George Boole, der den Logikkalkül erfunden hat]. Du kannst direkt mit if filled: auf den Wert testen, es ist also nicht nötig (und wenig elegant) if filled == True: zu schreiben. |
AUFGABEN |
|
|