BProgrammierenFunktionen in Python

Funktionen in Python sind Unterprogramme, die eine spezifische Aufgabe erfüllen. Sie können sowohl mit als auch ohne Parameter definiert werden.

Funktionen ohne Parameter

Geschrieben werden Funktionen wie andere Codeblöcke auch. Sie können eine Funktion definieren, die keine Argumente benötigt, wie im folgenden Beispiel:

def dreieck():
    for i in range(3):
        eva.forward(100)
        eva.right(360/3)
 
dreieck()

Funktionen mit Parametern

Manchmal möchten Sie der Funktion spezifische Informationen übergeben, damit sie ihre Aufgabe erfüllen kann. Diese Informationen nennen wir Argumente, die in die Parameter der Funktion abgefüllt werden.

def dreieck(seitenlaenge):
    for i in range(3):
        eva.forward(seitenlaenge)
        eva.right(360/3)

Um diese Funktion auszuführen, können Sie ihr beim Aufruf beispielsweise den Wert 50 als Argument übergeben, der dann in das Parameter seitenlaenge gefüllt wird.

dreieck(50)

Achtung

Funktionen erhalten eine separaten, temporären Speicherbereich vom
Hauptprogramm
. Die Parameter sowie alle Variablen, die in der Funktion
kreiert werden, werden immer nur temporär erstellt und am Schluss zusammen mit
dem gesamten Speicherbereich der Funktion wieder zerstört!

Funktionen “verschachteln”

Eine Funktion kann alle anderen Funktionen nutzen. z.B. hier nutzt die Funktion blume() die Funktion dreieck().

def dreieck():
    for i in range(3):
        eva.forward(50)
        eva.right(360/3)
 
def blume():
    for i in range(8):
        dreieck()
        eva.right(360/8)
 
blume()

Übungen

Pasted image 20230904192011

Schreiben Sie eine Funktion rechteck(), die ein Rechteck wie
oben zeichnet 👆.

eva.left(90) # Das muss man in TigerJython NICHT machen, da die Turtle bereits nach oben schaut.
 
def rechteck():
	for i in range(2):
		eva.forward(30)
		eva.right(90)
		eva.forward(60)
		eva.right(90)
 
rechteck()

Eine Funktion kann alle anderen Funktionen gebrauchen.

Pasted image 20230904192315

Nutzen Sie Ihre Funktion rechteck() in einer zweiten Funktion
treppe(stufen), die uns eine Treppe mit Anzahl stufen zeichnet – oben
beispielsweise mit treppen(8) aufgerufen.

 
eva.left(90) # Das muss man in TigerJython NICHT machen, da die Turtle bereits nach oben schaut.
 
def rechteck():
	for i in range(2):
		eva.forward(30)
		eva.right(90)
		eva.forward(60)
		eva.right(90)
 
def treppe(stufen):
	for i in range(stufen):
		rechteck()
		eva.forward(30)
 
treppe(8)

Erinnern Sie sich an folgenden Code und lösen Sie damit die anschliessenden Übungen:

for i in range(6):
    eva.forward(50)
    eva.right(360/6)

Pasted image 20230904183640

Erstellen Sie eine Funktion sechseck() und führen Sie sie
zweimal so aus, dass die Form einer Acht wie oben 👆 entsteht.

def sechseck():
	for i in range(6):
		eva.forward(50)
		eva.right(360/6)
 
sechseck()
eva.right(180)
sechseck()

Pasted image 20230904183937

Nutzen Sie sechseck() und machen Sie eine Blume 🌺 aus 10
gleichmässig rotierten Sechsecken.

def sechseck():
	for i in range(6):
		eva.forward(50)
		eva.right(360/6)
 
for i in range(10):
	sechseck()
	eva.right(360/10)

Pasted image 20230904184720

Verändern Sie die Funktion zu einer Funktion xeck(ecken), bei
der man die Anzahl Ecken der Figur als Argument übergeben kann. Machen Sie
dann ein Dreieck, ein Viereck und ein Siebeneck.

def xeck(ecken):
	for i in range(ecken):
		eva.forward(50)
		eva.right(360/ecken)
 
xeck(3)
xeck(4)
xeck(7)

Für folgende Aufgabe müssen Sie wissen, wie man Variabeln während einer Wiederholungsschleife verändert.

Pasted image 20230904190230

Nutzen Sie Ihre Funktion xeck(ecken) und schreiben Sie eine
Wiederholungsschleife, die alle Figuren von einem Dreieck bis zu einem
Zwölfeck zeichnet.

def xeck(ecken):
	for i in range(ecken):
		eva.forward(50)
		eva.right(360/ecken)
 
figur = 3
 
for i in range(10):
	xeck(figur)
	figur = figur + 1

Zusammenfassung

Zusammenfassung

Funktionen sind Unterprogramme, die eine bestimmte Aufgabe erfüllen. Man
muss eine Funktion:

  • Mit def zuerst definieren – der Funktion also einen Namen
    geben und bestimmen, was sie tut (Linie 1 - 4).
  • Die Funktion ausführen – der Computer findet die Funktion im Speicher
    anhand ihres Namens
    (Linie 5).

Pasted image 20230904194355

Manchmal möchten wir einer Funktion Informationen übergeben. Hier wird
beispielsweise der Wert 6
als Argument der Funktion übergeben und in das Parameter ecken
der Funktion abgefüllt.

Pasted image 20230904194406
Wichtig: Parameter (ecken)
werden bei jeder Ausführung temporär kreiert und wieder zerstört!