Python

Funktionen in Python – Die Basics

Sei die Erste, die diesen Beitrag teilt!

In diesem Artikel geht es um Funktionen (functions) in Python. Du erfährst, was eine Funktion in Python ist und wie du sie in deinem Code implementieren kannst.

Außerdem gehen wir auf die Begriffe Parameter und Rückgabewert ein. Wir werden uns alle wichtigen Basics für Anfänger in Bezug auf Funktionen in Python Schritt für Schritt anschauen. Los geht’s.

Was sind Funktionen (Functions) in Python?

Unter Funktionen in Python versteht man Codeabschnitte, die man in einem Programm aufrufen und so oft verwenden kann, wie man möchte. Funktionen sind damit eine Art von Unterprogrammen.

Eine Funktion in Python bekommt immer einen Namen, mit dem du sie später aufrufen kannst.

In Python werden Funktionen mit dem Befehl “def” eingeleitet, dann kommt ein Leerzeichen und anschließend der Name, den du für deine Funktion ausgesucht hast. Schau hier:

def name_der_funktion():
    ...

Nach dem Namen der Funktion kommen immer Klammern und ein Doppelpunkt.

Wozu werden Funktionen in Python benötigt?

Stell dir vor, du musst einen bestimmten Codeblock immer und immer wieder verwenden.

Da bietet es sich an, diesen Codeabschnitt nicht jedes Mal neu zu schreiben, sondern zu speichern und aufzurufen, wenn du ihn brauchst.

Das heißt, eine Funktion ist ein Unterprogramm, welches du in deinem Hauptprogramm aufrufen und immer wieder verwenden kannst.

Allgemeiner Programmcode für eine Funktion

Hier nochmal ganz ausführlich, wie du eine Funktion in Python implementierst.

Möchtest du eine Funktion in Python erstellen, dann sieht das ganze folgendermaßen aus:

def name_der_funktion([parameter_1, parameter_2, ...]):
    ...
    (return)
  • Eine Funktion startet immer mit dem Befehl def,
  • danach kommt ein Leerzeichen und dann der Name der Funktion. Diesen sucht man sich selbst aus.
  • Anschließend gehen (ohne weiteres Leerzeichen) eine Klammer auf und wieder zu. Innerhalb der Klammer können Parameter stehen, müssen aber nicht, mehr zu Parametern erkläre ich später. Weil nicht jede Funktion Parameter hat, habe ich diese in eckige Klammern gesetzt.
  • Nach den Klammern kommt ein Doppelpunkt.
  • Anstelle von … in Zeile 2 könnte nun dein gewünschter Code stehen, den die Funktion ausführen soll. Achtung, alles, was innerhalb der Funktion passieren soll, muss eingerückt sein!
  • Schließlich können Werte mit dem Befehl return zurückgegeben werden. Auch hierfür habe ich Klammern verwendet, weil es Funktionen mit, aber auch ohne, Rückgabewerten gibt.

Am besten schauen wir uns jetzt ein Beispiel an, um das ganze Thema Funktionen in Python besser zu verstehen.

Beispiele von Funktionen in Python (mit Parametern und Rückgabewert oder ohne)

Beispiel 1 – Allgemeine Begrüßung

Du möchtest ein Programm schreiben, dass eine beliebige Person mit dem Satz “Hallo! Schön, dass du da bist!” begrüßt. Dazu kannst du eine Funktion implementieren. Ich habe die Funktion in folgendem Beispiel begruessung() genannt.

In Python sieht diese Funktion so aus:

def begruessung():
	print("Hallo! Schön, dass du da bist!")

Anstatt dem Namen “begruessung()” , könntest du diese Funktion auch anders benennen. Du entscheidest selbst.

Grundsätzlich bietet es sich an Funktionen in Python so zu benennen, dass aus dem Namen bereits ersichtlich wird, was die Funktion machen soll.

Schauen wir zurück aufs Beispiel. Innerhalb des Codeblocks steht der print-Befehl, dieser sagt, was später beim Aufruf auf der Console erscheint. Achtung, dieser muss eingerückt sein, damit klar ist, dass diese Zeile zur Funktion gehört.

Wenn ich später die Funktion verwende, schreibe ich ihren Namen, um sie aufzurufen. Dann erhalte ich nach Durchlaufen des Codes:

begruessung()

>> "Hallo! Schön, dass du da bist!"

Beispiel 2 – Individuelle Begrüßung (Funktion mit Parameter)

Angenommen, du möchtest jede Person individuell mit Namen begrüßen. Jetzt kommt ein Parameter ins Spiel. Nämlich der Name der Person.

Wir wählen einen Platzhalter für den Namen und schreiben ihn in die Klammern.

def begruessung(name):
	print("Hallo, " + name + "! Schön, dass du da bist!")

Nun kann ich für den Parameter “name” für verschiedenen Personen, verschiedene Werte übergeben beim Aufrufen der Funktion.

begruessung(Lina)

>> "Hallo, Lina! Schön, dass du da bist!"
begruessung(Alex)

>> "Hallo, Alex! Schön, dass du da bist!"

Beispiel 3 – Funktion in Python mit Rückgabewert (ohne Parameter)

Es könnte auch sein, dass wir den Namen der Person, die wir begrüßen möchte, noch gar nicht wissen.

Die folgende Funktion fragt den Nutzer nach dem Namen und gibt diesen anschließend zurück, damit wir später damit weiterarbeiten können.

def name_herausfinden():
		name = input("Hallo! Wie heißt du? ")
		return name

Rufen wir diese Funktion auf, so erhalten wir den Namen der Person und dieser wird mithilfe des Befehls “return” an uns zurückgegeben und wir können später damit weiter arbeiten.

Nehmen wir an, die Person würde Sarah heißen.

name_der_person = name_herausfinden()
begruessung(name_der_person)

>> "Hallo! Wie heißt du? Sarah"
>> "Hallo, Sarah! Schön, dass du da bist!"

Beispiel 4 – Funktion zur Durchschnittsberechnung in Python

Angenommen du bist Dozentin, wie ich, und hast deine Studierenden im Laufe des Semesters drei Leistungsnachweise erbringen lassen.

Also haben alle Studis drei Noten und davon möchtest du den Durchschnitt berechnen.

Anstatt für jeden Studierenden den Code zur Berechnung des Durchschnitts neu zu tippen, schreibst du einen Codeblock, also eine Funktion, die diesen Durchschnitt berechnet und den du immer wieder verwenden kannst.

def notendurschnitt(note_1, note_2, note_3):
	durchschnitt = (note_1 + note_2 + note_3) / 3
	return durchschnitt

Im Beispiel siehst du eine Funktion, die ich notendurchschnitt genannt habe.

In der Klammer steht: note_1, note_2, note_3.

Dies sind drei Parameter, das heißt dafür müssen später vom Benutzer Werte eingegeben werden, wenn er die Funktion benutzen wird.

Nun kommt der eigentliche Programmcode der Funktion. Dieser Inhalt ist eingerückt. Ich weiß, ich wiederhole mich, aber:

Alle Zeilen, die zu der Funktion gehören, müssen eingerückt sein!

In Zeile 2 habe ich die Variable durchschnitt deklariert, also eingeführt. In ihr wird der Wert gespeichert, der durch die Berechnung des Mittelwerts zustande kommt.

In Zeile 3 findest du das Wort return. Anschließend den Namen der Variablen durchschnitt, deren Wert zurückgegeben werden soll.

Kurzum, die Funktion wird mir den Durchschnitt dreier Noten berechnen und mithilfe von return zurückgeben, das heißt ich kann auch später mit diesem Ergebnis, dem Durchschnitt, weiter rechnen.

Wozu braucht man return in einer Funktion? – Funktionen mit und ohne Rückgabewert

Hätte ich das Wort return, deutsch zurückgeben, in Beispiel 4 weggelassen, dann könnte ich mit dem berechneten Durchschnitt im späteren Verlauf des Programmcodes nicht weiter rechnen.

Eine Alternative ohne Rückgabe könnte folgendermaßen aussehen.

Beispiel 5 – Funktion in Python ohne Rückgabewert

def notendurschnitt(note_1, note_2, note_3):
	durchschnitt = (note_1 + note_2 + note_3) / 3
	print(durchschnitt)

In diesem Beispiel würd beim Ausführen der Funktion der Durchschnitt berechnet und anschließend mithilfe der print-Funktion auf der Console ausgegeben.

Kurz gesagt, der Durchschnitt würde angezeigt werden, ich könnte aber später mit dieser angezeigten Zahl nicht weiter rechnen.

Jeder muss für seine Funktion individuell entscheiden, ob die Funktion einmalig etwas ausführen soll oder, ob die Funktion einen Wert zurückgeben soll, mit dem anschließend weiter gearbeitet wird.

Funktionen in Python – Übersicht

Wir haben also Funktionen in Python mit und ohne Parameter und mit und ohne Rückgabewert.

Funktionenohne Parametermit Parameter
ohne RückgabewertBeispiel 1Beispiel 2
mit RückgabewertBeispiel 3Beispiel 4
Tabelle: Funktionen in Python

Was ist der Unterschied zwischen Funktionen und Prozeduren?

In anderen Programmiersprachen gibt es ähnliche Objekte, wie die Funktionen in Python.

Im Allgemeinen unterscheiden sich Funktionen in Python von Funktionen in anderen imperativen oder funktionalen Programmiersprachen. Dort wird häufig zwischen Prozeduren (Procedures) und Funktionen (Functions) unterschieden.

Wobei Funktionen einen Rückgabewert haben und Prozeduren nicht.

In Python werden beide Begriffe sozusagen in einen Topf geworfen und Funktion genannt, unabhängig davon, ob es einen Rückgabewert gibt oder nicht. Näher werde ich hier nicht darauf eingehen.


Danke, dass du dir meinen einführenden Blogartikel über Funktionen in Python durchgelesen hast.

Wenn etwas unklar war oder du weitere Anregungen hast, lass gern einen Kommentar da!



Für dich vielleicht ebenfalls interessant...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert