Direkt zum Hauptinhalt springen
eLearner.app
Modul 5 · Lektion 1 von 417/36 im Kurs~12 min
Lektionen des Moduls (1/4)

def und return

Eine Funktion ist ein wiederverwendbarer Codeblock: Du definierst sie einmal mit def und rufst sie dann so oft auf, wie du möchtest. Funktionen machen den Code modular, testbar und selbstdokumentierend.

Grundlegende Syntax

Python
def saluta(nome):
    return f"Ciao, {nome}!"

saluta("Ada")     # 'Ciao, Ada!'
  • def leitet die Funktion ein, gefolgt vom Namen und den Parametern in Klammern.
  • Der : öffnet den eingerückten Block.
  • return gibt einen Wert an den Aufrufer zurück und beendet die Funktion.

Explizites return vs. implizites None

Wenn du kein return schreibst, gibt die Funktion implizit None zurück:

Python
def stampa_e_basta(x):
    print(x)

risultato = stampa_e_basta("ciao")
# prints 'ciao'
print(risultato)   # None

Ein bloßes return (ohne Wert) gibt ebenfalls None zurück, kann aber als vorzeitiger Ausstieg dienen:

Python
def primo_pari(nums):
    for n in nums:
        if n % 2 == 0:
            return n
    return None   # explicit: communicates "not found"

Mehrere Werte? Gib ein Tupel zurück

Python hat keine "Out-Parameter": Um mehr als eine Sache zurückzugeben, gib ein Tupel zurück (das oft vom Aufrufer entpackt wird).

Python
def divisione_resto(a, b):
    return a // b, a % b

quoziente, resto = divisione_resto(17, 5)
# 3, 2

Docstring: Integrierte Dokumentation

Der erste String innerhalb der Funktion ist der Docstring: Er wird in help(fn) und als Tooltip in IDEs angezeigt.

Python
def area_cerchio(raggio):
    """Calcola l'area di un cerchio dato il raggio."""
    import math
    return math.pi * raggio ** 2

Gültigkeitsbereich (Scope): Lokale Variablen

Variablen, die innerhalb einer Funktion definiert sind, sind lokal: Sie existieren außerhalb nicht.

Python
def f():
    x = 10
    return x

f()    # 10
x      # NameError: name 'x' is not defined

Funktionen geben immer etwas zurück

In Python gibt eine Funktion, wenn sie keine explizite return-Anweisung deklariert oder ein leeres return enthält, implizit den speziellen Wert None zurück. Es gibt keine Funktionen, die keinen Wert zurückgeben.

Probiere es aus

Übung#python.m5.l1.e1
Versuche: 0Wird geladen…

Definiere eine Funktion `double(x)`, die `x * 2` zurückgibt. Rufe sie dann mit 7 auf und weise das Ergebnis `result` zu. Evaluiere `result`.

Editor wird geladen…
Hinweis anzeigen

Verwende return x * 2.

Lösung nach 3 Versuchen verfügbar

Wiederholungsübung

Übung#python.m5.l1.e2
Versuche: 0Wird geladen…

Definiere `min_max(nums)`, das ein Tupel `(minimum, maximum)` zurückgibt. Rufe es mit `[3, 1, 4, 1, 5, 9, 2, 6]` auf und entpacke das Ergebnis in `mn, mx`. Evaluiere `(mn, mx)`.

Editor wird geladen…
Hinweis anzeigen

return min(nums), max(nums)

Lösung nach 3 Versuchen verfügbar

Zusätzliche Herausforderung

Übung#python.m5.l1.e3
Versuche: 0Wird geladen…

Definiere eine Funktion `is_palindrome(text)` die `True` zurückgibt, wenn der Eingabe-String seinem umgedrehten Wert entspricht, andernfalls `False`. Teste die Funktion mit `is_palindrome("radar")` als letztem Ausdruck.

Editor wird geladen…
Hinweis anzeigen

Verwende Slicing text[::-1], um den String umzudrehen und mit dem Originaltext zu vergleichen.

Lösung nach 3 Versuchen verfügbar