• Home
  • |
  • Blog
  • |
  • Python Tutorial [19/24] – Funktionen mit Parametern

Python Tutorial [19/24] – Funktionen mit Parametern

Zuletzt aktualisiert: Juni 26, 2023

Im heutigen Blogbeitrag werden wir uns in Python Funktionen mit Parametern ansehen. Da wir bereits im vergangenen Artikel gesehen haben, wie man Funktionen auf einfachste Art und Weise definieren kann, ist es nun an der Zeit, unsere Möglichkeiten durch den Einsatz von Parametern zu erweitern!

Inhaltsverzeichnis

1. Was sind Parameter?

Bevor wir in Python Funktionen mit Parametern genauer unter die Lupe nehmen, sollten wir zunächst wissen, was Parameter eigentlich sind. Dafür werfen wir noch einmal einen Blick auf die print-Funktion aus unserem letzten Beispiel:

python funktionen mit parametern

Bei dieser besteht die Möglichkeit, beim Funktionsaufruf etwas zwischen den runden Klammern zu übergeben. In unserem Beispiel haben wir hier einen String übergeben. Der String innerhalb der Klammern wird dann durch die print-Funktion verwertet und anschließend auf der Konsole ausgegeben.

Bei unserer selbst definierten say_hello-Funktion übergeben wir aktuell noch nichts zwischen den Klammern. Ihre Funktionsweise sieht also im Moment noch so aus, dass sie bei jedem Aufruf „Hendrik“ begrüßt.

Wie sieht es nun allerdings aus, wenn wir nicht Hendrik, sondern beispielsweise Fritz begrüßen möchten? Nach unserem bisherigen Wissensstand müssten wir uns hierfür eine zusätzliche say_hello-Funktion definieren und diese entsprechend aufrufen.

Möchten wir dann allerdings Susi begrüßen, wäre wieder eine neue Funktion hinfällig. Das wäre allerdings ziemlich aufwendig und ist auch gar nicht notwendig. Schließlich hat jede Funktion den gleichen Zweck, lediglich der entsprechende Name soll angepasst werden.

Die Lösung auf unser Problem liefern die Python Funktionen mit Parametern. Mit diesen können wir innerhalb des Funktionskörpers gewisse Stellen schaffen, die variabel sind und mit den Werten befüllt werden, die wir beim Funktionsaufruf an die Funktion übergeben.

2. Python Funktionen mit Parametern definieren

Sehen wir uns nun an, wie wir solche Funktionen mit Parametern innerhalb unserer Programme definieren können.

Die grundsätzliche Funktionsdefinition der say_hello-Funktion bleibt gleich, denn wir müssen lediglich noch den gewünschten Parameter hinzufügen. Wir wählen also einen für unseren Parameter geeigneten Bezeichner und schreiben diesen zwischen die runden Klammern der say_hello-Funktion.

Da wir einen Namen übergeben möchten, den wir innerhalb des Funktionskörpers verwenden werden, bezeichnen wir den Parameter als „name“. Natürlich können auch bei Parametern beliebige Bezeichner gewählt werden.

Den Parameter können wir nun wie eine Variable handhaben. Anstatt also in die Funktion einen Namen wie etwa „Hendrik“ zu schreiben, können wir den String verketten und den Inhalt der Variable „name“ anhängen:

funktion mit parametern

Führen wir das Programm nun aus, kommt es zu einem Fehler:

Ausgabe bei Ausführungen der Funktion

Der Grund für den Fehler lässt sich folgendermaßen erklären: Die Funktion wird zwar aufgerufen, allerdings übergeben wir beim Aufruf noch keinen Wert für den Parameter.

Unsere Funktion benötigt diesen aber zwingend, da wir diesen Parameter ja im Schritt zuvor in der Funktionsdefinition vorgegeben haben und innerhalb des Funktionskörpers mit dem Parameter arbeiten möchten.

2.1. Positional Arguments

Die Lösung: Beim Aufruf der Funktion geben wir dieser den Wert für den Parameter als String mit. Dieser Wert kann zum Beispiel der Name „Hendrik“ sein.

funktion mit parameter aufrufen

In der Fachsprache bezeichnet man die Werte, die man beim Funktionsaufruf zwischen den runden Klammern übergibt, als Argumente.

Beim Aufruf der Funktion wird dieses Argument nun an die Funktion übergeben und in den entsprechenden Parameter geladen. Wenn wir jetzt innerhalb des Funktionskörpers mit dem Parameter name arbeiten, referenziert dieser auf den Wert, den wir über den Funktionsaufruf hinein geladen haben.

Beim Ausführen des Programms sehen wir nun, dass es wieder korrekt funktioniert und „Hendrik“ begrüßt wird.

erneute ausgabe der funktion

Der Vorteil des Ganzen ist nun, dass wir auch beliebig andere Strings als Argumente wie etwa „Fritz“ übergeben können. So begrüßt das Programm „Fritz“, ohne dass wir vorher eine Änderung an der Funktion an sich vornehmen mussten. Dieses Konzept ermöglicht uns, Funktionen extrem flexibel einzusetzen.

2.2. Gültigkeit von Parametern

Die Parameter einer Funktion, die wir in den Klammern der Funktionsdefinition festlegen, sind nur innerhalb des Funktionskörpers verwendbar. Außerhalb des Körpers könnten wir die Variable name folglich nicht verwenden.

Beispiel: print(name) am Ende des Programms würde nicht funktionieren.

3. Mehrere Parameter übergeben

Stellen wir uns nun einmal vor, dass wir nicht nur einen einzelnen Parameter mit der Funktion entgegennehmen, sondern zwei oder sogar noch mehr. Beispielsweise wenn wir den Vornamen und den Nachnamen übergeben möchten.

Um das umzusetzen, trennen wir die Parameter für den Vor- und Nachnamen innerhalb der Funktionsdefinition mit einem Komma voneinander. Durch diese Änderung müssen wir auch den Funktionsaufruf entsprechend anpassen, denn nun müssen wir folglich auch zwei Argumente an die Funktion übergeben, da die Definition der Funktion ja zwei Parameter besitzt.

Dabei ist Folgendes äußerst wichtig zu verstehen: Das erste Argument wird in den ersten Parameter geladen und das zweite Argument in den zweiten Parameter. Die Position der Argumente beim Aufruf ist also entscheidend für die richtige Platzierung innerhalb der Parameter.
python funktionen mit parametern beispiel 2
ausgabe beispiel 2

An diesem Punkt hast du nun selbst die Möglichkeit, in Python Funktionen mit Parametern einzusetzen. Um das Thema zu verinnerlichen und den Umgang mit Funktionen zu lernen, empfehle ich dir, mit dem hier gelernten etwas herumzuspielen. Definiere dir jetzt also am besten Mal selbst ein paar Python Funktionen mit Parametern, damit du ein Gefühl für diese erhältst.