19.7 Rekursion 

Python erlaubt es dem Programmierer, sogenannte rekursive Funktionen zu schreiben. Das sind Funktionen, die sich selbst aufrufen. Die aufgerufene Funktion ruft sich so lange selbst auf, bis eine Abbruchbedingung diese sonst endlose Rekursion beendet. Die Anzahl der verschachtelten Funktionsaufrufe wird Rekursionstiefe genannt und ist von der Laufzeitumgebung auf einen bestimmten Wert begrenzt.
Im folgenden Beispiel wurde eine rekursive Funktion zur Berechnung der Fakultät einer ganzen Zahl geschrieben:
def fak(n):
if n > 0:
return fak(n - 1) * n
else:
return 1
Es soll nicht Sinn und Zweck dieses Abschnitts sein, vollständig in die Thematik der Rekursion einzuführen. Stattdessen möchten wir Ihnen hier nur einen kurzen Überblick geben. Sollten Sie das Beispiel nicht auf Anhieb verstehen, seien Sie nicht entmutigt, denn es lässt sich auch ohne Rekursion passabel in Python programmieren. Trotzdem sollten Sie nicht leichtfertig über die Rekursion hinwegsehen, denn es handelt sich dabei um einen interessanten Weg, sehr elegante Programme zu schreiben.[ 69 ](Jede rekursive Funktion kann – unter Umständen mit viel Aufwand – in eine iterative umgeformt werden. Eine iterative Funktion ruft sich selbst nicht auf, sondern löst das Problem allein durch Einsatz von Kontrollstrukturen, speziell Schleifen. Eine rekursive Funktion ist oft eleganter und kürzer als ihr iteratives Ebenbild, in der Regel aber auch langsamer. )