Rekursive Funktionen sind Funktionen, die sich selbst nennen in ihrer Definition . Weil eine rekursive Funktion ruft sich selbst auf seine Aufgabe zu erfüllen , kann es Jobs, die identische Arbeit auf mehrere Datenobjekte enthalten einfacher zu konzipieren, zu planen und zu schreiben. Allerdings kann Rekursion System -intensive oder am Ende eine Überlastung des Systems , wenn die Rekursion nicht aufhört . Schreiben rekursive Funktionen in Python ist ähnlich wie mit rekursiven Funktionen in anderen Programmiersprachen , mit den gleichen Vorteilen und Tücken. Beispiel Recursion
Rekursive Funktionen nennen sich selbst als Teil ihrer Definition . Zum Beispiel:
>>> def Faktor (x):
. . . Faktor (x)
Diese Funktion wird sich weiterhin aufrufen, bis das System nicht mehr zu halten, kann die Menge der Funktion ruft gemacht ( Funktionsaufrufe im Speicher wie alle anderen Daten befinden) . Allerdings erleichtert dies, wie eine rekursive Funktionen konzeptionell arbeitet : Eine Funktion (Faktor) nennt sich (Faktor (x)) als Teil ihrer Definition
Basis-Szenarios
. Eine rekursive Funktion muss , was man als "Basis Fällen " oder Bedingungen , die die Funktion zu sagen, seine Rekursion stoppen. Dies könnte eine Bedingung , dass die Funktion könnte als Teil seiner Arbeit zufrieden gewesen sein . Als klassisches Beispiel findet das Fakultäts-Funktion die Fakultät einer Zahl n ( n! oder n * n- 1 * n-2 ... 0) . So die Fakultät 3 würden bis 3 * 2 * 1 = 6 zu berechnen. Ein Programmierer könnte mit der Zahl 0 als Basis bei dieser Funktion :
>>> if x == 0:
. . . zurück 1
Recursion
Wenn die Fakultäts-Funktion hat jetzt einen Basisfall ( x == 0) , dann Rekursion wird in diesem Zustand zu beenden.
>>> Sonst :
So wäre es nur eine Frage der Rekursion die Fakultät Betrieb durchzuführen. . . return x * Faktor ( x - 1) german
Wenn x nicht gleich 0 ist, dann ist die Rekursion beginnen /fortsetzen. Die return-Anweisung wird als " Faktor " und warten . Jeder neue Aufruf der Funktion wird das gleiche tun , fordern und zu warten, bis der letzte Aufruf der Funktion ( wenn x == 0) 1 zurück. Dann wird jeder vorherigen Aufruf der Anweisung return ( multiplizieren Sie die zurückgegebene Wert von "factor" von x ), bis die Fakultät zurückgegeben beenden.
Python Recursion
Rekursion in jede Sprache kann am Ende in einer Endlosschleife : das heißt, eine rekursive Struktur , die niemals endet , bis das System stoppt sie wegen des Mangels an Ressourcen. Python hält diese "unendlich" Rekursion bei 1.000 Anrufe ( so eine Funktion kann sich in einem 1000 - Instanz langen Kette rekursiv aufrufen, bevor Python stoppt den Prozess ) . Der Programmierer kann diesen Wert durch die System-Bibliotheken zu ändern, wie in diesem Beispiel :
>>> import sys >>>
sys.setrecursionlimit (2000)
jedoch an diesem Punkt Programmierer könnte sich fragen, ob Rekursion ist die beste Lösung für das Problem.