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)
AchtungFunktionen 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 20230904192011Schreiben Sie eine Funktionrechteck(), die ein Rechteck wieoben 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 20230904192315Nutzen Sie Ihre Funktionrechteck()in einer zweiten Funktion
treppe(stufen), die uns eine Treppe mit Anzahlstufenzeichnet - obenbeispielsweise mittreppen(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 20230904183640Erstellen Sie eine Funktionsechseck()und führen Sie siezweimal 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 20230904183937Nutzen Siesechseck()und machen Sie eine Blume 🌺 aus 10gleichmä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 20230904184720Verändern Sie die Funktion zu einer Funktionxeck(ecken), beider man die Anzahl Ecken der Figur als Argument übergeben kann. Machen Siedann 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 20230904190230Nutzen Sie Ihre Funktionxeck(ecken)und schreiben Sie eineWiederholungsschleife, die alle Figuren von einem Dreieck bis zu einemZwö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
ZusammenfassungFunktionen sind Unterprogramme, die eine bestimmte Aufgabe erfüllen. Man
muss eine Funktion:
- Mit
defzuerst definieren - der Funktion also einen <span
style={{backgroundColor: "#12C2FF", color: "black", padding:"2px", borderRadius:"3px"}}>Namen
geben und bestimmen, was sie tut (Linie 1 - 4).- Die Funktion ausführen - der Computer findet die Funktion im Speicher
anhand ihres <span
style={{backgroundColor: "#12C2FF", color: "black", padding:"2px", borderRadius:"3px"}}>Namens
(Linie 5).Pasted image 20230904194355
Manchmal möchten wir einer Funktion Informationen übergeben. Hier wird
beispielsweise der Wert <span
style={{backgroundColor: "#15FF74", color: "black", padding:"2px", borderRadius:"3px"}}>6
als Argument der Funktion übergeben und in das Parameter <span
style={{backgroundColor: "#15FF74", color: "black", padding:"2px", borderRadius:"3px"}}>ecken
der Funktion abgefüllt.
Pasted image 20230904194406
Wichtig: Parameter (<span
style={{backgroundColor: "#15FF74", color: "black", padding:"2px", borderRadius:"3px"}}>ecken)
werden bei jeder Ausführung temporär kreiert und wieder zerstört!

