def name_der_funktion(PARAMETER): # Parameter sind optional
# Codeblock der Funktion
return # optional
* Das Schlüsselwort `def` leitet immer die Definition einer Funktion ein.
* Darauf folgt der **Funktionsname**. Typischerweise schreibt man diesen mit ausschliesslich Kleinbuchstaben und Underscores `_`.
* Wie bei Variablen bestimmst du den Namen - er sollte sinnvoll sein und beschreiben, was die Funktion tut.
* Direkt anschliessend werden `(`**runde Klammern**`)` geschrieben. Diese enthalten die **Parameter**. Das sind Werte, die an die Funktion übergeben werden. Funktionen können auch ohne Parameter definiert werden, die Klammern sind dann leer.
* Nach einem **Doppelpunkt** `:`
* folgt der **Funktionskörper**, der den eigentlichen Code der Funktion beinhaltet. Dieser Code muss **eingerückt** sein.
* Eine Funktion kann (muss aber nicht) mit `return` etwas **zurückgeben**.
Nachdem du eine Funktion definiert hast, kannst du sie ganz einfach aufrufen. Dazu mehr in den Beispielen unten.
=== Beispiel 1: Funktion ohne Parameter und Rückgabewert ===
Die Funktion gibt einfach "Hallo du!" aus, wenn sie aufgerufen wird. Die ersten beiden Zeilen definieren die Funktion. Unten wird sie zweimal aufgerufen, dementsprechend wird 2x "Hallo du!" ausgegeben.
"Hallo, mein lieber Oskar aus Amriswil, ich wünsche dir einen ganz tollen Tag!"
head_or_tail(), die einen Münzenwurf simuliert. Zufällig soll Kopf oder Zahl ausgewählt und ausgegeben werden.
fortune_cookie(), die ein Glückskeks-Spruch-Generator ist: Jedesmal wenn die Funktion aufgerufen wird, wird zufällig einer von mehreren Sprüchen ausgewählt und ausgegeben. Erfinde selber Sprüche oder klaue sie dreist aus dem Internet.
Rufe die Funktion auf.
square(x), die eine Zahl x als Argument entgegen nimmt und ein Quadrat mit dieser Länge zeichnet.
square(x,y,l): Zeichnet Quadrat mit Seitenlänge l, startend an Position x,y
circle(x,y,r): Zeichnet Kreis mit Radius r, startend an Position x,y
rectange(x,y,a,b): Zeichnet Rechteck mit Seitenlängen a und b, startend an Position x,y
triangle(x,y,l): Zeichnet gleichseitiges Dreieck mit Seitenlänge l, startend an Position x,y
Mache nun moderne Kunst, indem du diese Funktionen aufrufst.
Challenge (optional): Erstelle mit möglichst vielen Zufallswerten moderne Kunst. Ziel: Kunst von deinem Programm soll besser und schöner sein als die vom Programm der Lehrperson!
Vom Zufall abhängen können z.B. folgende Werte:
Definiere eine Funktion mit einem Argument volume_cube(x), die das Volumen eines Würfels mit Seitenlänge x (in cm) berechnet und zurückgibt (also NICHT printed). Speichere das Resultat in einer Variablen und gebe es dann aus.
Welches Volumen hat ein Würfel mit Seitenlänge 13 cm?
pythagoras(a,b), mit der du die Hypotenuse eines rechtwinkligen Dreiecks mit Katheten a und b berechnen kannst. Das Resultat soll zurückgegeben werden.
Tipp: Die Wurzel einer Zahl ziehst du mit sqrt(x), dazu musst du aber zuerst das math-Modul importieren: import math.
Kontrolle: Für die Katheten 3 und 4 ist die Hypothenuse 5. Die Codezeile print(pythagoras(3,4)) soll dann also 5.0 ausgeben.
volume_sphere(...), der man als Argument den Radius übergibt und die dann das Volumen zurückgibt. Die Kreiszahl Pi (π) kannst du mit math.pi aufrufen, dazu muss aber auch wieder zuerst das math-Modul importiert werden (import math).
factorial(...), der als Argument eine ganze Zahl übergeben wird und die dir dann die Fakultät dieser Zahl zurückgibt.
Optionale Challenge für absolute Freaks: Kannst du die Fakultät ganz ohne Schleife berechnen? Dann hast du das Prinzip der Rekursion (Selbst-Aufruf) entdeckt!