At My Fingertips

Functions: circle

Bisher haben wir Code verfasst, den wir, einmal geschrieben, nur noch auf mühsame und fehleranfällige Weise wiederverwenden konnten. Die Wiederverwendung von Code ist aber etwas, das Programmierer*innen immer und immer wieder machen. Wir sind eigentlich Profi-Copy-Paster. Und wir als Profi-Copy-Paster haben deshalb auch effizientere Möglichkeiten entwickelt, Code wiederzuverwenden.

Eine Möglichkeit dazu sind Funktionen. Sie kennen Funktionen bereits: show_graphic(rectangle(100, 200, red)) besteht gleich aus zwei Funktionsaufrufen: show_graphic(...) und rectangle(...). Die Funktionsdefinition, also der Code, der beschreibt, was passieren soll, wenn man diese Funktionen aufruft, haben wir noch nicht betrachtet. Wir können aber selbst einmal eine solche Funktionsdefnition verfassen.

Funktionsbeispiel

In dieser Codezelle (unten) sehen Sie eine Funktionsdefinition, die eine spezielle Ellipse definiert, den Kreis.

Führen Sie diese Codezelle aus.

Loading...

Wie Sie sehen, passiert noch nichts. Der Compiler hat sich den Code unter dem Namen circle nur gemerkt, aber noch nicht ausgeführt, da er noch nicht aufgerufen wurde.

Wenn Sie die nächste Codezelle aufrufen, wird der Code in der obigen Zelle mit den Argumenten 200 und rgb_color(0, 127, 255) aufgerufen und ausgeführt.

Loading...

Code Wiederverwenden

Wie schon gesagt können wir einmal definierten Code wiederverwenden. Auf dieser Website geht das, indem wir Funktionen in die Toolbox speichern (davon später mehr) oder indem wir auf der gleichen Webseite Code (weiter unten) wieder verwenden.

Die Folgende Codezelle definiert eine neue Funktion, die eine Zielscheibe erstellt und dazu auf die Funktion circle(...) zurückgreift:

Loading...
Loading...

Begriffserklärung zu Funktionen

2 Basisteile

Eine Funktion besteht immer aus zwei Teilen: der Definition und dem Aufrufer:

slide1

Eine Definition darf bestehen, ohne je aufgerufen zu werden, das ist jedoch recht sinnlos und gute Programmierumgebungen weisen darauf hin. Der Code kann aber kompilieren (durchlaufen werden), ohne dass es zu Fehlermeldungen kommt.

Wenn jedoch eine Funktion aufgerufen wird, ohne dass sie definiert wurde, gibt der Compiler sofort eine Fehlermeldung aus.

Einzelteile einer Definition

slide2

Die Schlüsselwörter lassen den Compiler wissen, dass einerseits eine Funktionsdefinition jetzt beginnt (def), und andererseits, dass sie jetzt endet (return) und den Rückgabewert zurückgibt.

Nach dem Schlüsselwort def folgt immer der Definitionsname, der aus den gleichen Zeichen bestehen darf wie Variablennamen.

In den Klammern darauf kommt irgendeine Anzahl von Parametern. Das Klammerpaar darf also leer sein oder eine unendliche grosse Anzahl Parameter beinhalten. Für uns werden es meist 0-4 Parameter sein.

Am Schluss muss der Doppelpunkt : folgen. Er signalisiert das Ende des Definitionskopfes (erste Zeile). Alles, was zur Definition gehört, ist (um 4 Leerzeichen) eingerückt. Sobald die Einrückung kleiner ist, zählt es nicht mehr dazu (in Python). Eine Funktion darf auch ohne die return-Zeile enden, im Moment arbeiten wir aber nur mit Funktionen, die mit return enden.

Beide Funktionen in der obigen Darstellung sind übrigens gleichwertig, die zweite Version ist einfach kürzer.

Definition in 3 Teilen

Die Funktion kann eingeteilt werden in Kopf und Körper. Wenn die letzte Zeile return enthält, ist sie die Rückgabeanweisung.

slide3

Parameter

slide4

Die Anzahl der Parameter muss beim Aufrufer und der Definition übereinstimmen. Sonst kommt es zu Fehlermeldungen. Führen Sie dazu folgende Codezellen aus.

Loading...
Loading...

Aufgabe

Korrigieren Sie den Code in folgenden zwei Zellen:

Loading...

Nicht nur Anzahl der Paramter soll stimmen, sondern auch der Datentyp, sonst kann die Funktion die darin definierten Befehle nicht fehlerfrei ausführen:

Loading...

Um dies zu verhindern, wird oft noch der Datentyp im Funktionskopf festgelegt. So können Fehler früher erkannt und mit besseren Fehlerbeschrieben gemeldet werden.

Führen Sie dazu folgende Codezellen aus:

Loading...
Loading...

Aufgabe

Korrigieren Sie den Code in folgender Zelle.

Loading...

Was Sie gelernt haben

  • was eine Funktion ist und wozu man sie benutzen kann
  • den Aufbau einer Funktion, die Einzelteile
  • Typen festlegen
  • Funktionen aufrufen

This activity has been created by Gall and is licensed under CC BY-SA 4.0.

Functions: circle

Logo of PyTamaro

PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI

Privacy PolicyPlatform Version b744b47 (Tue, 08 Oct 2024 16:30:14 GMT)