Modul 1 — Was ist eine Funktion?

Ein wiederverwendbarer, benannter Codeblock.

Begriff

Eine Funktion bündelt eine kleine Aufgabe unter einem Namen. Du definierst sie einmal und kannst sie danach beliebig oft aufrufen — gegebenenfalls jedes Mal mit anderen Werten.

Syntax:

def <name>(<parameter>):
    <Anweisungen>
    return <wert>

Die Zeile def …: heißt Funktionskopf, alles darunter (eingerückt) ist der Funktionsrumpf. Ohne Aufruf passiert nichts — die Definition selbst führt den Code nicht aus.

Beispiel 1.1 — eine Funktion definieren und aufrufen

Python wird geladen…
Ausgabe

    

Modul 2 — Parameter & Argumente

Werte in die Funktion hineingeben.

Parameter

Die Namen in der Klammer def quadrat(zahl): heißen Parameter. Sie sind lokale Variablen, die bei jedem Aufruf neu gefüllt werden mit den Argumenten, die der Aufrufer übergibt.

Eine Funktion kann beliebig viele Parameter haben — getrennt durch Kommas.

Beispiel 2.1 — ein Parameter

Python wird geladen…
Ausgabe

    

Beispiel 2.2 — zwei Parameter

Python wird geladen…
Ausgabe

    

Modul 3 — return: Rückgabewerte

Funktionen liefern Ergebnisse — der Aufrufer fängt sie auf.

Idee

Mit return <wert> liefert die Funktion ein Ergebnis an die Stelle zurück, an der sie aufgerufen wurde. Dort speicherst du das Ergebnis in einer Variable und arbeitest damit weiter.

Wichtig: Funktion gibt etwas zurück statt selbst etwas auszugeben. Der print()-Aufruf gehört dann in den if __name__ == "__main__":-Block, nicht in den Funktionsrumpf.

VorgriffDer if __name__ == "__main__":-Block

Ab hier siehst du die Funktion oben definiert und darunter einen festen Rahmen, in dem sie aufgerufen wird:

def quadrat(zahl):
    return zahl * zahl

if __name__ == "__main__":
    print(quadrat(6))

Lies if __name__ == "__main__": vorerst einfach als „hier startet das Programm" — der eigentliche Ablauf (Eingaben, Aufrufe, print()) steht in diesem Block, die Funktionen darüber. Warum man das genau so schreibt, lernst du im direkt folgenden Modul Main-Block.

Beispiel 3.1 — Rückgabe in Variable speichern

Python wird geladen…
Ausgabe

    

Ohne return

Fehlt das return, liefert die Funktion implizit None — sie gibt also „nichts" zurück. Das ist meistens nicht gewollt.

Modul 4 — Mehrere Rückgabewerte

Tupel-Unpacking auf der Aufrufseite.

Idee

Eine Funktion darf hinter return mehrere Werte angeben, getrennt durch Kommas: return a, b. Python verpackt sie zu einem Tupel. Auf der Aufrufseite verteilt man sie auf passend viele Variablen:

summe, produkt = rechner(a, b)

So lassen sich z. B. Fläche und Umfang oder Min und Max in einem Aufruf liefern.

Beispiel 4.1 — zwei Rückgaben auffangen

Python wird geladen…
Ausgabe

    

TippStilregel

Definiere die Funktion oben in der Datei. Den Aufruf, die Eingabe-Variablen und print() schreibst du in den if __name__ == "__main__":-Block weiter unten. Die Programmieraufgabe verlangt genau dieses Muster.

HinweisZwei Arten von Aufgaben

Die Programmieraufgaben sind bewusst gemischt:

  • Einlese-Aufgaben (Teil 1, 2, 4, 5): Du liest die Werte im Main-Block mit input() ein (eingeführt im Modul Variablen), rufst die Funktion damit auf und gibst die Rückgabe mit print() aus. Die Prüfung speist die Eingaben automatisch ein und vergleicht deine Ausgabe Zeichen für Zeichen — gib daher genau das Geforderte aus.
  • Definitions-Aufgaben (Teil 3, 6): Hier definierst du nur die Funktion — kein input(), kein print(). Die Prüfung ruft deine Funktion selbst mit festen Werten auf und prüft die Rückgabe. So siehst du: man muss nicht alles einlesen, das Definieren der Funktion ist der Kern.

Quellen & weiterführende Literatur

Wo das hier vermittelte Wissen offiziell dokumentiert ist.

Offizielle Python-Dokumentation

Tutorials & Lehrbücher

  • Real Python — Defining Your Own Python Function: realpython.com/defining-your-own-python-function
  • Theis, Thomas: Einstieg in Python. 7. Auflage, Rheinwerk Verlag, 2023 — Kapitel zu Funktionen.
  • Klein, Bernd: Einführung in Python 3. 4. Auflage, Hanser Verlag, 2021 — Abschnitt „Funktionen".