146
Funktionen mit Parametern
Kapitel
5
reset()
right(90)
jump(120, -135)
pensize(3)
left(15)
dreierpack(35, 10)
jump(200,30)
pensize(5)
right(60)
dreierpack(75,-15)
jump(240,110)
pensize(7)
left(150)
dreierpack(30,35)
hideturtle()
>
Führe diese Änderungen aus. Sobald das Programm zufriedenstellend
funktioniert, speichere eine Kopie des Programms unter dem Namen
dreieck13.py
ab.
Oder erstelle ein ganz anderes Muster mit vier oder fünf
dreierpack
s.
Spiele einfach mit dem Programm herum, bis du eine Zeichnung hast, die
dir echt gefällt.
»jump()« ist auch für später
nützlich
jump()
ist sicherlich eine so nützliche Funktion, dass wir sie noch öfter
brauchen werden. Wir werden daher mit ihr beginnen, einen Werkzeugkas-
ten anzulegen, in den wir in Zukunft alle jene Funktionen hineinschreiben,
die wir mit einer
import
-Anweisung importieren wollen – also eine eigene
Software-Werkzeug-Bibliothek.
Gehe dazu wie folgt vor:
>
Öffne vom IPI aus ein neues Editor-Fenster.
147
»jump()« ist auch für später nützlich
>
Schreibe als Kopfkommentar Folgendes in die Datei:
# Autor : ...
# Datum : ...
# mytools.py : Bibliothek von selbst erstellten
# brauchbaren Funktionen für die Arbeit mit
# Python für Kids
>
Diese Datei soll jetzt nicht in
C:\Py4Kids\kap05
, sondern im be-
sonderen Verzeichnis
C:\Py4Kids\mylib
abgespeichert werden, und
zwar mit dem Dateinamen
mytools.py
! Das Unterverzeichnis
mylib
– abgekürzt für »my library« = meine Bibliothek – kannst du, wenn es
nicht schon vorhanden ist, während des Speicherns erzeugen, indem
du das Icon N
EUEN
O
RDNER ERSTELLEN
anklickst und den voreingestell-
ten Text
Neuer Ordner
durch
mylib
ersetzt.
>
Kontrolliere sicherheitshalber nochmals, dass die Datei
mytools.py
im richtigen Ordner gelandet ist!
>
Schreibe unter den Kopfkommentar von
mytools.py
die
import
-
Anweisung für das
turtle
-Modul, denn die folgende Definition von
jump()
benützt ja Turtle-Grafik-Funktionen.
>
Kopiere aus der Datei
dreieck_arbeit.py
den Code der Funktion
jump()
über die Zwischenablage in die Datei
mytools.py
oder
schreibe ihn einfach neu dazu!
>
Speichere
mytools.py
nochmals!
Damit
mytools.py
von einer
import
-Anweisung auf deinem Computer
auch gefunden wird, muss das Verzeichnis
C:\py4kids\mylib
in den
Suchpfad von Python aufgenommen werden, und zwar am besten bei je-
dem Start von Python. Dies kann durch einen Eintrag in der Datei
site-
customize.py
sichergestellt werden. Diesen Eintrag nehmen wir jetzt vor.
Es ist entscheidend, dass du hier alles genau befolgst:
>
Öffne über den Menüpunkt F
ILE
|O
PEN
... die Datei
c:\Python31\
Lib\sitecustomize.py
! Wenn sie nicht existiert, öffne ein neues
Editor-Fenster.
>
Stelle sicher, dass am Anfang der Datei die Anweisung
import sys
steht. Füge ans Ende der Datei folgende Anweisung an:
sys.path.append("C:\\py4kids\\mylib")
>
Speichere die Datei
sitecustomize.py
im Ordner
C:\Python31\
Lib
ab.
148
Funktionen mit Parametern
Kapitel
5
Wenn unsere Installation gelungen ist, wird es in Zukunft genügen, Funkti-
onsdefinitionen in die Datei
mytools.py
zu kopieren, um sie per
import
-
Anweisung zur Verfügung zu haben.
Daher werden wir uns jetzt überzeugen, dass alles gut gelaufen ist.
>
Schließe alle offenen IPI- und Editor-Fenster und starte IPI
-
T
URTLE
-
G
RAFIK
neu!
>
Mach mit!
>>> from turtle import *
>>> from mytools import jump
Wir hätten ebenso
from mytools import *
schreiben können – in die-
sem Fall macht das gar keinen Unterschied, denn im Modul
mytools.py
ist bisher ohnehin nur diese eine Funktion. Und nun ein paar Anweisungen
zum Testen:
>>> forward(30)
>>> jump(40, 0)
>>> forward(30)
>>> jump(100,120)
>>> forward(20)
>>>
Ich hoffe, es hat auch bei dir geklappt!
Zum Abschluss möchte ich dir hier noch zeigen, wie du feststellen kannst,
welche Verzeichnisse im Python-Suchpfad stehen:
>>> import sys
>>> sys.path
['C:\\py4kids', 'c:\\Python31\\Lib\\idlelib',
'C:\\WINDOWS\\system32\\python31.zip', 'C:\\Python31\\DLLs',
'C:\\Python31\\lib', 'C:\\Python31\\lib\\plat-win',
'C:\\Python31', 'C:\\Python31\\lib\\site-packages',
'C:\\py4kids\\mylib']>>>
Der Pfad für deine Privatbibliothek steht hier auch schon drin. (Je nach
Installation kann diese Liste von Verzeichnissen auf deinem Computer von
meiner abweichen.)
Nur so zum Drüberstreuen: Hier habe ich
sys
mit einer alternativen Form
der
import
-Anweisung importiert. Es ist die
import
-Anweisung ohne
from
. Auch nach
dieser
import
-Anweisung können alle Objekte aus dem
importierten Modul, hier:
sys
, angesprochen werden, doch muss dazu zu
jedem Objekt der Modulname angegeben werden. Das Objekt
path
aus
dem Modul
sys
wird daher so angesprochen:
sys.path
.

Get Python für Kids now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.