Programmieren heisst, einer Maschine Befehle zu erteilen und sie damit zu steuern. Die erste solche Maschine, die Sie steuern, ist eine kleine Schildkröte (bzw. ein kleines Dreieck) auf dem Bildschirm: Die Turtle. Was kann diese Turtle und was musst du wissen, um sie zu steuern?
Turtlebefehle werden grundsätzlich Englisch geschrieben und enden immer mit einem Klammerpaar. Dieses enthält weitere Angaben zum Befehl. Selbst wenn keine weiteren Angaben nötig sind, muss ein leeres Klammerpaar vorhanden sein. Die Klein-/Grossschreibung muss exakt eingehalten werden.
Die Turtle kann sich innerhalb ihres Fensters bewegen und dabei eine Spur zeichnen. Um die Turtle zu bewegen, verwenden wir die drei Befehle forward(distanz)
, left(winkel)
und right(winkel)
.
Programmierkonzepte: Quellprogramm editieren, Programm ausführen, Programmsequenz
Das erste Programm
Das erste Python-Programm zeichnet ein Quadrat. Damit die Befehle zum zeichnen verwendet werden können, muss zuerst eine Datei mit den entsprechenden Befehlen (ein sogenanntes Modul) turtle
geladen werden.
from turtle import *
left(90)
forward(80)
left(90)
forward(80)
left(90)
forward(80)
left(90)
forward(80)
from turtle import *
Damit Python die Befehle zum zeichnen verwenden kann, müssen diese zuerst aus einer Bibliothek importiert werden. Damit beim Importieren nicht jeder einzelne Befehl angegeben werden muss, wird das Zeichen *
verwendet welches alle verfügbaren Befehle importiert.
forward
, left
Alle Befehle in Python sind nach demselben Schema aufgebaut:
-
einen Befehlsnamen
-
runde Klammern
-
optional in den runden Klammern eine Auflistung* von Parametern, die auch leer sein darf.
forward(90)
\_____/ \
/ Parameter (Bedeutung hier: 90 Schritte vorwärts)
Befehlsname
penup()
\___/ \
/ kein Parameter
Befehlsname
* werden mehrere Parameter übergeben, dann werden diese mit Kommas abgetrennt, z.B. goto(20, 30)
Markieren Sie im untenstehenden Programm folgende Strukturmerkmale eines Algorithmus mit den vorgegebenen Farben:
Unterprogramme
Aufrufe eines Unterprogramms mit orange
Parameter
Verwendete Parameter mit grün
Ändern Sie die Parameter im Programm QUADRAT.PY so ab, dass:
-
das Quadrat doppelt so gross gezeichnet wird
-
das Quadrat um 45° nach links gedreht gezeichnet wird
from turtle import *
left(90)
forward(80)
left(90)
forward(80)
left(90)
forward(80)
left(90)
forward(80)
⭐️ Zusatz:
Die Form der Turtle kann mit dem Befehl shape
verändert werden. Ändern Sie auf Zeile 3
die Turtleform auf eine Schildkröte durch Aufrufen des Befehls shape
mit dem Parameter 'turtle'
.
Mögliche Parameter für den Befehl shape
-
'arrow'
-
'turtle'
-
'circle'
-
'square'
-
'triangle'
-
'classic'
(standard)
Farben
Die Stiftfarbe kann mit dem Befehl pencolor('red')
auf rot gewechselt werden. Es gibt eine vordefinierte Farbpalette für die Stiftfarben.
from turtle import *
forward(30)
right(90)
pencolor('red')
forward(30)
right(90)
pencolor('blue')
forward(30)
right(90)
pencolor('green')
forward(30)
Farbpalette red green blue
yellow | |
gold | |
orange | |
red | |
maroon | |
violet | |
magenta | |
purple | |
navy | |
blue | |
skyblue | |
cyan | |
teal | |
turquoise | |
lawngreen | |
green | |
darkgreen | |
chocolate | |
brown | |
black | |
gray | |
white |
'string'
Beachten Sie die Anführungszeichen rund um die Farb-Namen. Damit Python die Farben als Text (eng. string
) erkennt und nicht plötzlich nach einem gleichnamigen Befehl sucht, werden rund um Texte immer Anführungszeichen verwendet.
Stiftbreite
Die Stiftbreite kann mit dem Befehl pensize(2)
verändert werden. Standardmässig ist die Stiftbreite 1
from turtle import *
forward(20)
pensize(5)
forward(20)
pensize(10)
forward(20)
pensize(15)
forward(20)
pensize(20)
forward(20)
Beachten Sie, dass bei Zahlen keine Anführungszeichen verwendet werden. Eine Verwechslungsgefahr mit anderen Befehlen besteht nicht, da in Python keine Befehle mit einer Zahl beginnen.
Versuchen Sie, folgendes Zickzack-Muster mit einer Stiftdicke von 5
zu zeichnen. Die Streckenlänge und die Winkel dürfen Sie schätzen.
from turtle import *
⭐️ Zusatz:
Machen Sie bei jedem Richtungswechsel einen Punkt:
Kommentare
In Python können Kommentare eingefügt werden, die aber auf die Ausführung des Programms keinen Einfluss haben. Kommentare sind eine wichtige Hilfe, um Programme (Algorithmen) besser zu verstehen, oder aber um zusätzliche Informationen, wie den Autor des Programms, festzuhalten.
# Autor: B. Hofer
# Datum: 5.09.2021
from turtle import * # importiere alle Befehle der Bibliothek "turtle"
speed(1) # verlangsame die Turtle auf die langsamste Geschwindigkeit
forward(100) # 100 Schritte vorwärts
left(120) # drehe um 120 ° nach links
speed(3) # zurück auf Normalgeschwindigkeit
forward(100)
left(120)
speed(10) # Schneller...
forward(100)
left(120)
hideturtle() # verstecke die Turtle
-
Versuchen Sie nachzuvollziehen, welche Zeile was macht.
-
Fügen Sie auf den ersten Zeilen den Autor und das Datum hinzu.
-
Fügen Sie immer dann, wenn ein Unterprogramm zum ersten Mal verwendet wird, einen Kommentar hinzu, welcher beschreibt, was dieses Unterprogramm macht und, falls vorhanden, welchen Einfluss die Parameter haben.
from turtle import *
forward(40)
left(90)
penup()
forward(40)
dot(10)
right(180)
forward(40)
left(90)
pendown()
forward(40)
left(90)
forward(80)
left(90)
forward(80)
left(90)
forward(80)
Ändern Sie das Programm so ab, dass die gewürfelte Zahl 5
gezeichnet wird:
Verstecken Sie auch die Turtle am Ende!
from turtle import *
forward(40)
left(90)
penup()
forward(40)
dot(5)
right(180)
forward(40)
left(90)
pendown()
forward(40)
left(90)
forward(80)
left(90)
forward(80)
left(90)
forward(80)
Aufgaben
Das "Haus vom Nikolaus" ist ein Zeichenspiel für Kinder. Ziel ist es, das besagte Haus in einem Linienzug aus genau acht Strecken zu zeichnen, ohne dabei eine Strecke zweimal zu durchlaufen. Zeichnen Sie das Haus vom Nikolaus.
from turtle import *
Hinweis: Diagonale
Die Länge der Diagonale können Sie mithilfe von Pythagoras und einem Taschenrechner berechnen.
Oder Sie verwenden den Trick, dass die Diagonale im Quadrat gerade mal länger ist als eine Seitenlänge - bei einer Seitenlänge von wären das also ca. .
1. Einführung Python 👣