Rekursive Funktionen Teil 2
Teil des Abschnitts Logik und Ablaufsteuerung der Python-Journey von Coddy. Lektion 61 von 78.
Rekursive Funktionen haben typischerweise zwei Teile:
- Basisfall: Legt fest, wann die Rekursion beendet werden soll.
- Rekursiver Schritt: Ruft die Funktion selbst mit einer kleineren Eingabe auf.
Beispiel: Berechnung der Fakultät mithilfe von Rekursion:
def factorial(n):
if n == 1: # Basisfall
return 1
return n * factorial(n - 1) # Rekursiver Aufruf
print(factorial(5)) # Ausgabe: 120Hier ruft die Funktion sich selbst mit n - 1 auf, bis sie 1 erreicht, wo die Rekursion stoppt.
Beispiel: Einen String umkehren:
def recursive_reverse(s):
if len(s) <= 1: # Basisfall: leerer oder einzeichiger String
return s
else:
return recursive_reverse(s[1:]) + s[0] # Rekursiver Schritt
text = "hello"
result = recursive_reverse(text)
print(result)
# Ausgabe: ollehIn diesem Beispiel ruft die Funktion recursive_reverse sich selbst mit dem Rest der Zeichenkette (s[1:]) auf, bis die Zeichenkette leer ist oder nur ein Zeichen enthält. Jeder Aufruf hängt das erste Zeichen an das Ergebnis des rekursiven Aufrufs an und kehrt dadurch die Zeichenkette effektiv um.
Aufgabe
EinfachSchreibe eine rekursive Funktion namens fibonacci, die eine positive ganze Zahl n als Argument entgegennimmt und die n-te Fibonacci-Zahl zurückgibt. Die Fibonacci-Folge ist definiert als:
fibonacci(1) = 0fibonacci(2) = 1fibonacci(n) = fibonacci(n-1) + fibonacci(n-2)fürn > 2.
Beispieleingabe:
n = 6Beispielausgabe:
5Probier es selbst
def fibonacci(n):
# Schreibe hier den CodeDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik und Ablaufsteuerung
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Übe selbstständig: Online-Python-Compiler