Funktionen

Funktionen

In dieser Aktivität lernst du eigene Funktionen zu definieren.

Kreiere einen Kreis

Alt text

Ein Kreis ist eigentlich nichts anderes als eine spezielle Form einer Ellipse. Eine Ellipse, bei der die Breite und die Höhe gleich sind. Du hast die Erklärung einer Ellipse schon erhalten. Benutze die ellipse Funktion, um einen roten Kreis mit Durchmesser 100 zu generieren:

Loading...

Eine Funktion definieren, um einfacher Kreise zu zeichnen

Es war nicht besonders schlau, mit dem Aufruf ellipse einen Kreis zu zeichnen. "Ellipse" zu schreiben, wo wir doch eher den Spezialfall Kreis meinen, ist nicht sehr intuitiv. Und dazu kommt, dass man den Durchmesser sowohl für die Breite, wie auch die Höhe eingeben muss... das ist doch ätzend.

Wär's nicht viel schöner, wenn es eine spezifische Funktion für die Generierung von Kreisen gäbe? Sie müsste "Kreis" heissen und nur den Durchmesser und die Farbe als Parameter erhalten.

Ha! Sobald du dir ebendiese Frage "Wäre es nicht schön, wenn ich eine dafür spezifische Funktion hätte?" stellst, müsstest du dich freuen :) Wieso? Weil du dir selbst den Wunsch erfüllen kannst! Wie? Python erlaubt uns, unsere eigenen Funktionen zu definieren.

Die zwei Zeilen in der folgenden Code-Zelle, die mit def und return starten, zeigen, wie eine Funktion definiert wird. Ersetze in der dritten Zeile ... durch einen Aufruf der von dir neu definierten Kreis-Funktion, um einen blauen Kreis mit Durchmesser 100 zu erhalten.

Loading...
Lösungen
from pytamaro.de import ellipse, blau, zeige_grafik

def Kreis(durchmesser, farbe):
    return ellipse(durchmesser, durchmesser, farbe)

blauer_Kreis = kreis(100, blau)

zeige_grafik(blauer_Kreis)

Aufbau einer Funktion

  1. Eine Funktionsdefinition beginnt mit dem Schlüsselwort def.
  2. Dann folgt ein sinnvoller funktionsname in Kleinbuchstaben (wir haben der Funktion oben den Namen Kreis gegeben).
  3. Anschliessend schreibst du mindestens () oder in den Klammern einige Parameter, die während dem Aufruf der Funktion mit Werten gespiesen werden (hier waren das zwei Parameter: durchmesserund farbe).
  4. Die Definitionszeile endet mit einem Doppelpunkt.
  5. Darunter folgt nun der Körper (engl.body) der Funktion. Der Körper (oder Rumpf) besteht aus einer oder mehreren Zeilen. Jede Zeile ist eine Aussage / Befehl (engl. statement). In unserem Beispiel besteht der Körper nur aus einer Zeile und zwar aus einem return-statement.

Siehst du, dass der Körper eingerückt ist? Um genau zu sein um genau 4 Charakter. In Python ist diese Einrückung sehr relevant. Der Körper der Funktion ist nämlich so lange wie die Einrückung erhalten bleibt. In der Code-Zelle oben ist die Zeile blauer_Kreis = Kreis(100, blau) nicht mehr Teil des Körpers.

Wenn eine Funktion aufgerufen wird, wird der Körper ausgeführt. Der Körper Kreis-Funktion wird die Ellipsenfunktion aufrufen, um eine Kreisgrafik zu erzeugen, die dann mit dem return-Befehl zurückgegeben wird.

Also macht die Code-Zeile folgende vier Dinge:

  1. Sie importiert die Namen ellipse, blauund zeige_grafik
  2. Sie definiert die Funktion Kreis, so dass sie - wenn aufgerufen - immer eine kreisförmige Ellipse mit dem mitgegebenen Durchmesser und Farbe generiert.
  3. Rufe die Funktion Kreis auf, um eine Grafik zu erzeugen und weise diese Grafik dem Namen blauer_Kreis zu.
  4. Zeige die Grafik mit dem Namen blauer_Kreis.

Verschiedene Kreise

Erstelle mit der folgenden Code-Zelle einen grünen Kreis mit Durchmesser 150.

Importiere zuerst die Definition des Namens gruen und ersetze ... mit dem korrekten Kreis-Aufruf.

Loading...
Lösungen
from pytamaro.de import gruen, zeige_grafik, ellipse

gruener_Kreis = kreis(100, gruen)

zeige_grafik(gruener_Kreis)

Male nun auch einen schwarzen Kreis mit Durchmesser 80. Gib diesem Kreis keinen Namen, sondern rufe ihn direkt und einfach über die Kreis-Funktion auf, an Stelle von ....

Loading...
Lösungen
from pytamaro.de import schwarz   # ersetze ... durch schwarz

zeige_grafik(kreis(150, schwarz))

Übungen

Aufgabe 1: Verschiedene Rechtecke

Importiere aus der Grafik-Bibliothek pytamaro.de ein rechteck, rot, magenta, weiss, gelb und schwarz, sowie zeige_grafik. Programmiere ein Rechteck: Es erfordert von dir nacheinander die Eingabe "horizontale Länge", "vertikale Länge" und "Farbe".

Loading...
Lösungen
from pytamaro.de import rechteck, cyan, zeige_grafik

ein_rechteck = rechteck(40, 95, cyan)

zeige_grafik(ein_rechteck)

Aufgabe 2: Verschiedene Quadrate

Nun sollst du eine eigene Funktion definieren, die nur Quadrate herstellt.

  • Funktionsname sei also quadrat
  • Ein Quadrat entstehe aus einem Rechteck mit gleichlangen Seiten.
  • Die quadrat-Funktion soll anschliessend so aufgerufen werden:
    quadrat(200, magenta)
Loading...
Lösungen
from pytamaro.de import rechteck, blau, cyan, zeige_grafik

def quadrat(seitenlaenge, farbe):
    return rechteck(seitenlaenge, seitenlaenge, farbe)

zeige_grafik(quadrat(100, blau))

Aufgabe 3: Verschiedene

Kann deine Funktion folgende Grafik herstellen? Führe die nachfolgende Codezelle aus und vergleiche sie mit dem Bild.

Alt text

Loading...

Aufgabe 4: Codeverständnis

Verbessere Aufgabe 2 (mit den Lösungen), falls die Aufgabe 3 keine Ausgabe liefert .

Führe nachfolgend den Code aus. Kannst du die Enstehung der Grafikfolge mit deinem Vorwissen zu den Listen und Schleifen verstehen? Erkläre den Code deiner Nachbarin / deinem Nachbarn.

Loading...

Just for fun!

Loading...

Was du gelernt hast

  • Du hast Kreise gezeichnet, aber viel wichtiger, du hast ein wichtiges Konzept der Programmierung gesehen:
    • wie du deine eigenen Funktionen generieren kannst (über def).
  • Die Definition einer Funktion ist eine Form der Abstraktion: Du kannst einem Stück Code einen Namen geben und du kannst den Namen verwenden, um die Funktion an irgendeiner Stelle deines Programms aufzurufen.
  • Funktionen können Parameter (wie durchmesser, farbe) haben.
  • Du kannst die Funktion viele Male aufrufen, mit variierenden Parameterwerten.

=> Du wirst noch viele Funktionen definieren, es wird eine deiner meist gebrauchten Kompetenzen als Programmierer/in sein!


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

It is derived from this activity.

Funktionen

Logo of PyTamaro

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

Privacy PolicyPlatform Version 667200c (Sun, 05 Oct 2025 00:25:30 GMT)