Menu
Coddy logo textTech

Rekursive Funktionen Teil 2

Teil des Abschnitts Logic & Flow der Python-Journey von Coddy — Lektion 61 von 78.

Rekursive Funktionen haben normalerweise zwei Teile:

  1. Basisfall: Definiert, wann die Rekursion stoppen soll.
  2. Rekursionsschritt: Ruft die Funktion selbst mit einer kleineren Eingabe auf.

Beispiel: Berechnung der Fakultät mittels Rekursion:

def factorial(n):
    if n == 1:  # Basisfall
        return 1
    return n * factorial(n - 1)  # Rekursiver Aufruf

print(factorial(5))  # Ausgabe: 120

Hier ruft sich die Funktion immer wieder selbst mit n - 1 auf, bis sie 1 erreicht, woraufhin die Rekursion stoppt.

Beispiel: Umkehren eines Strings:

def recursive_reverse(s):
	if len(s) <= 1:  # Basisfall: leerer oder einstelliger String
		return s
	else:
		return recursive_reverse(s[1:]) + s[0]  # Rekursiver Schritt

text = "hello"
result = recursive_reverse(text)
print(result)
# Output: olleh

In diesem Beispiel ruft die recursive_reverse Funktion sich selbst mit dem Rest des Strings (s[1:]) auf, bis der String leer ist oder nur noch ein Zeichen enthält. Jeder Aufruf hängt das erste Zeichen an das Ergebnis des rekursiven Aufrufs an, wodurch der String effektiv umgekehrt wird.

challenge icon

Aufgabe

Einfach

Schreiben Sie eine rekursive Funktion namens fibonacci, die eine positive Ganzzahl n als Argument entgegennimmt und die n-te Fibonacci-Zahl zurückgibt. Die Fibonacci-Folge ist wie folgt definiert:

  • fibonacci(1) = 0
  • fibonacci(2) = 1
  • fibonacci(n) = fibonacci(n-1) + fibonacci(n-2) für n > 2.

Beispiel Eingabe:

n = 6

Beispiel Ausgabe:

5

Spickzettel

Rekursive Funktionen bestehen aus zwei wesentlichen Teilen:

  1. Basisfall (Base Case): Definiert, wann die Rekursion stoppen soll
  2. Rekursionsschritt (Recursive Step): Ruft die Funktion selbst mit einer kleineren Eingabe auf

Fakultäts-Beispiel:

def factorial(n):
    if n == 1:  # Basisfall
        return 1
    return n * factorial(n - 1)  # Rekursiver Aufruf

print(factorial(5))  # Output: 120

Beispiel zur String-Umkehrung:

def recursive_reverse(s):
    if len(s) <= 1:  # Basisfall: leerer oder einstelliger String
        return s
    else:
        return recursive_reverse(s[1:]) + s[0]  # Rekursionsschritt

text = "hello"
result = recursive_reverse(text)
print(result)  # Output: olleh

Probier es selbst

def fibonacci(n):
    # Hier Code schreiben
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logic & Flow