Funktionen

Funktionen gehören zu den zentralen Konzepten in der Programmierung – auch in Python. Sie helfen dabei, Code übersichtlicher zu strukturieren, wiederzuverwenden und einfacher zu verstehen.

Was ist eine Funktion?

Eine Funktion ist ein Abschnitt von Code, der eine bestimmte Aufgabe erfüllt. Man kann ihr Eingabewerte (sogenannte Parameter) übergeben und erhält im Idealfall ein Ergebnis (Rückgabewert) zurück. Funktionen dienen dazu, Aufgaben im Programm zu bündeln und mehrfach verwendbar zu machen. Das spart Zeit und reduziert Fehlerquellen.

Warum sind Funktionen nützlich?

Funktionen bringen viele Vorteile mit sich:

  • Wiederverwendbarkeit: Einmal definiert, kann eine Funktion an beliebig vielen Stellen im Programm aufgerufen werden.

  • Struktur: Der Code wird in logische Einheiten unterteilt, was die Lesbarkeit verbessert.

  • Fehlersuche: Fehler lassen sich gezielter finden, da einzelne Funktionen isoliert getestet werden können.

  • Abstraktion: Komplexe Abläufe werden ausgeblendet, sodass man sich auf das Wesentliche konzentrieren kann.

  • Dokumentation: Funktionsnamen und Kommentare (Docstrings) können die Lesbarkeit weiter erhöhen.

Funktionen in Python definieren

Eine Funktion wird in Python mit dem Schlüsselwort def eingeleitet, gefolgt vom Namen der Funktion, runden Klammern mit eventuell enthaltenen Parametern und einem eingerückten Codeblock:

def funktionsname(parameter1, parameter2, ...):
    """
    Hier kann eine kurze Beschreibung der Funktion stehen.
    """
    # Code, der die Funktion ausführt
    return ergebnis

Parameter und Rückgabewerte

Funktion mit Eingabewerten (Parametern)

def begruessung(name):
    print(f"Hallo, {name}!")

Diese Funktion erwartet einen Namen als Eingabe und gibt eine Begrüßung aus.

Funktion mit Rückgabewert

def verdoppeln(zahl):
    return zahl * 2

Diese Funktion gibt das Doppelte der eingegebenen Zahl zurück.

Der Befehl return ist essenziell, wenn ein Ergebnis aus der Funktion herausgeführt werden soll. Er beendet außerdem die Ausführung der Funktion an dieser Stelle.

Rückgabe mehrerer Werte mit einem Tupel

Was sind Tupel?

Ein Tupel ist eine geordnete, unveränderbare (immutable) Sammlung von Werten. In Python werden Tupel mit runden Klammern () geschrieben. Sie können verschiedene Datentypen enthalten – zum Beispiel Zahlen und Texte.

Tupel werden häufig verwendet, wenn eine Funktion mehrere Werte gleichzeitig zurückgeben soll.

def get_name_and_age():
    name = "Alice"
    age = 30
    return (name, age)

name, age = get_name_and_age()
print(f"Name: {name}, Alter: {age}")

In diesem Beispiel wird ein Tupel bestehend aus einem String und einer Zahl zurückgegeben. Mithilfe von sogenanntem Tuple Unpacking können die beiden Rückgabewerte direkt in einzelne Variablen gespeichert werden.

Weitere Beispiele für Funktionen

Beispiel 1: Funktion ohne Parameter

def hallo():
    print("Hallo, Welt!")

hallo()

Diese Funktion gibt einen festen Text aus und benötigt keine Eingabewerte.

Beispiel 2: Funktion mit zwei Parametern

def addiere(a, b):
    return a + b

print(addiere(3, 4))  # Ausgabe: 7

Hier wird die Summe zweier Zahlen berechnet und zurückgegeben.

Beispiel 3: Funktion mit Standardwerten

def begruessen(name, nachricht="Hallo"):
    print(f"{nachricht}, {name}!")
begruessen("Anna")            # Ausgabe: Hallo, Anna!
begruessen("Tom", "Hi")       # Ausgabe: Hi, Tom!

Wenn beim Aufruf kein zweiter Parameter angegeben wird, verwendet die Funktion automatisch den Standardwert „Hallo“.

Beispiel 4: Funktion mit beliebig vielen Argumenten

def summiere(*zahlen):
    summe = 0
    for zahl in zahlen:
        summe += zahl
    return summe

print(summiere(1, 2, 3))  # Ausgabe: 6
print(summiere(5, 10))    # Ausgabe: 15

Durch das Sternchen * wird eine beliebige Anzahl von Argumenten akzeptiert, die intern als Tupel verarbeitet werden.

Beispiel 5: Mehrere return-Anweisungen in einer Funktion

def check_zahl(x):
    if x > 0:
        return "positiv"
    elif x < 0:
        return "negativ"
    else:
        return "null"

print(check_zahl(5))   # positiv
print(check_zahl(-3))  # negativ
print(check_zahl(0))   # null

Je nach Wert der Eingabe gibt die Funktion einen unterschiedlichen Text zurück. Dabei wird jeweils die passende return-Anweisung ausgeführt.