Benutzer-Werkzeuge

Webseiten-Werkzeuge


python:turtle:funktionen

Dies ist eine alte Version des Dokuments!


Funktionen

Problemstellung:

Mit dem Turtlemodul soll das folgende Muster gezeichnet werden:

In der Zeichnung kommen sehr viele Quadrate vor. Deshalb wäre es sehr schön, wenn man den Quelltext zum Zeichnen eines Quadrats zu einem Befehl zusammenfassen könnte. Dazu dient in Python das Konzept der Funktionen. Eine Funktion ist ein Quelltextfragment, welches in einem Pythonprogramm mit Hilfe seines Namens als Befehl aufgerufen werden kann. Mit Funktionen kann man einmal programmierten Quelltext mehrfach wiederverwenden. Dadurch erhöht sich die Übersichtlichkeit des Programms und es entstehen weniger Fehler.

Definition einer Funktion:

def funktionsname():
    ... Anweisungen ...

Aufruf einer Funktion im Programm:

... Anweisungen ...
funktionsname()
... Anweisungen ...

Für unser Programm wäre also eine Funktion quadrat() hilfreich, welche man wie folgt definieren müsste:

def quadrat():
    for i in range(4):
        fd(50)
        left(90)

Aufgerufen werden kann die Funktion Quadrat dann durch den Befehl quadrat().

Vollständige Lösung:

from turtle import *
 
def quadrat():
    for i in range(4):
        fd(50)
        left(90)
penup()
goto(-200,200)
pendown()
for i in range(5):
    quadrat()
    penup()
    fd(100)
    pendown()
 
penup()
goto(-150,150)
pendown()
for i in range(4):
    quadrat()
    penup()
    fd(100)
    pendown()
 
penup()
goto(-200,100)
pendown()
for i in range(5):
    quadrat()
    penup()
    fd(100)
    pendown()
 
penup()
goto(-150,50)
pendown()
for i in range(4):
    quadrat()
    penup()
    fd(100)
    pendown()
 
 
penup()
goto(-200,0)
pendown()
for i in range(5):
    quadrat()
    penup()
    fd(100)
    pendown()
 
penup()
goto(-150,-50)
pendown()
for i in range(4):
    quadrat()
    penup()
    fd(100)
    pendown()
 
penup()
goto(-200,-100)
pendown()
for i in range(5):
    quadrat()
    penup()
    fd(100)
    pendown()
 
penup()
goto(-150,-150)
pendown()
for i in range(4):
    quadrat()
    penup()
    fd(100)
    pendown()
 
penup()
goto(-200,-200)
pendown()
for i in range(5):
    quadrat()
    penup()
    fd(100)
    pendown()

Eine ausführliche Darstellung zu Funktionen findet ihr hier:

Funktionen in Python

Aufgabe 18

Teste das Beispielprogramm!

Aufgabe 19

Definiere in einem Programm die Funktionen dreieck(), fuenfeck(), sechseck(), achteck() und neuneck. Teste die Funktionen!

Aufgabe 20

Schreibe ein Pythonprogramm, welches die folgende Figur zeichnet. Dabei sollen keine Linien doppelt gezeichnet werden (Funktionen penup und pendown). Verwende in deinem Programm die Funktion dreieck!

python/turtle/funktionen.1652248411.txt.gz · Zuletzt geändert: 2022/05/11 07:53 von lutz