1. Einführung Python 👣
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 .
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)
.
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)
Wird ein Befehl im Programm ausgeführt, spricht man von einem Befehlsaufruf - nebst dem Befehlsnamen gehören auch die runden Klammern dazu!
Markieren Sie im untenstehenden Programm folgende Strukturmerkmale eines Algorithmus mit den vorgegebenen Farben:
- Unterprogramme
- Aufruf eines Unterprogramms
- Orange
- Parameter
- Verwendete Parameter
- 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
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)
Gesamte Farbpalette
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 - welche Unterprogramme sind neu dazugekommen?
- 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! (Code-Beispiel zu den 👉 Kommentaren studieren)
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. .
Python kann ebenfalls die Quadratwurzel (englisch Squareroot, abgekürzt sqrt
) ziehen - allerdings muss dieser Befehl zuerst noch importiert werden:
from math import sqrt # auf der ersten Zeile des Programms
from turtle import *
forward(sqrt(2) * 100) # die Wurzel aus 2 mal 100
⭐️ Zusatz:
Verwenden Sie für die Zeichnung Ihre Lieblingsfarbe und eine grössere Stiftdicke.
Zeichnen Sie eine Treppe mit fünf Stufen, die eine Breite von 29
Pixeln und eine Höhe von 17
Pixeln haben.
from turtle import *