Rekursive Funktionen Teil 2
Teil des Abschnitts Logic & Flow der Python-Journey von Coddy — Lektion 61 von 78.
Rekursive Funktionen haben normalerweise zwei Teile:
- Basisfall: Definiert, wann die Rekursion stoppen soll.
- 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: 120Hier 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: ollehIn 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.
Aufgabe
EinfachSchreiben 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) = 0fibonacci(2) = 1fibonacci(n) = fibonacci(n-1) + fibonacci(n-2)fürn > 2.
Beispiel Eingabe:
n = 6Beispiel Ausgabe:
5Spickzettel
Rekursive Funktionen bestehen aus zwei wesentlichen Teilen:
- Basisfall (Base Case): Definiert, wann die Rekursion stoppen soll
- 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: 120Beispiel 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: ollehProbier es selbst
def fibonacci(n):
# Hier Code schreibenDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logic & Flow
1Variablen-Erkundung
KonstantenMehrfache VariablenzuweisungenVariablen tauschenPlatzhalter-VariablenZahlen rundenListen-Casting4Kontaktbuch-Anwendung
Menü anzeigenKontakt hinzufügen7Sets Teil 2
Mathematische Operationen Teil 1Mathematische Operationen Teil 2Rückblick – SchatzsucheTeilmengen und ObermengenIterieren über SetsRückblick – Turnier-Tracker10Grundlagen der List Comprehensions
Die SyntaxEinfache Listen erstellenBedingungen hinzufügenDatenaggregation nutzenRückblick - House Of ListsRückblick - Elements Of Freedom13Bestandsverwaltungssystem
ProjektübersichtArtikel hinzufügen2Dictionaries Teil 1
Was ist ein Dictionary?Ein Dictionary erstellenZugriff auf WerteDictionaries ändernRückblick – Rezept-Manager5Fortgeschrittene Entscheidungsfindung
Ternärer OperatorZugehörigkeitsprüfungenIdentitätsprüfungenEinrückungsfehlerZusammenfassung - Urlaubsfilter8Studenten-Datenverwaltung
ProjektübersichtStudent hinzufügen11Fortgeschrittene Funktionen
Mehrere Werte zurückgebenLambda-Funktionen Teil 1Lambda-Funktionen Teil 2Recap Challenge – Lambda SortRekursive Funktionen Teil 1Rekursive Funktionen Teil 2Recap – Verschachtelte Listen summieren14Funktionen höherer Ordnung
Die Map-FunktionDie Filter-FunktionWiederholung – E-Mail-ValidatorWiederholung – Zahlenprozessor3Dictionaries Teil 2
Dictionary-MethodenVerschachtelte DictionariesKeys überprüfenDictionaries durchlaufenZusammenfassung – Häufigkeitszähler9Fortgeschrittene Datenaggregation
Verwendung von SumMinimum und Maximum findenDaten effizient sortierenRückblick - Dictionary Sorter12Grundlagen der Fehlerbehandlung
Was ist Fehlerbehandlung?Der Try- und Except-BlockBehandlung mehrerer ExceptionsRückblick – Warenkorb-Fehler