rekursive funktioner er funktioner , der kalder sig selv i deres definition. Fordi en rekursiv funktion kalder sig selv for at udføre sin opgave , kan det gøre job, som indeholder identiske arbejde på flere dataobjekter lettere at konceptualisere , planlægge og skrive. Dog kan rekursion være systemet intensiv eller ender overbelaste systemet, hvis rekursion ikke stopper . Skrivning rekursive funktioner i Python svarer til at bruge rekursive funktioner i andre programmeringssprog , med de samme fordele og faldgruber . Prøve rekursion
rekursive funktioner kalder sig selv som en del af deres definition. For eksempel : Hej
>>> def (x) : Hej
. . . (x)
Denne funktion vil fortsætte med at kalde sig indtil systemet ikke længere kan holde mængden af funktion opkald foretages ( funktionskald opholde sig i hukommelsen ligesom alle andre data). Men dette forenkler hvordan en rekursive funktioner fungerer konceptuelt : En funktion ( faktor) kalder sig (faktor (x)) som led i sin definition
basisscenarier
. En rekursiv funktion skal have , hvad der kunne kaldes "base sager ", eller betingelser , der fortæller den funktion at stoppe sin rekursion . Dette kunne være nogen betingelse , at funktionen kunne have opfyldt som led i sin drift. Som et klassisk eksempel finder fakultet funktion fakultet af et tal n ( n! eller n * n-1 * n- 2 ... 0) . Så fakultet af 3 vil beregne til 3 * 2 * 1 = 6 . En programmør kan bruge tallene 0 som base for denne funktion : Hej
>>> hvis x == 0 : Hej
. . . tilbage 1
Recursion
p Hvis fakultet funktionen har nu en base case (x == 0), så rekursion vil stoppe ved denne tilstand. Så ville det kun være et spørgsmål om at bruge rekursion til at udføre fakultet operation : Hej
>>> andet : Hej
. . . tilbagevenden x * (x - 1)
Hvis x ikke er lig 0, så rekursionen vil begynde /fortsætte. Afkastet erklæring vil kalde " faktor" og vente. Hver ny funktion opkald vil gøre det samme , kalder og venter indtil den sidste funktion opkald (når x == 0) returnerer 1 . Derefter vil hver tidligere opfordring afslutte tilbagevenden erklæring ( formere den returnerede værdi fra "faktor " af x ), indtil det fakultet returneres .
Python Recursion
Recursion i ethvert sprog kan ende i en uendelig løkke : det vil sige, en rekursiv struktur, der aldrig ender , indtil systemet standser det på grund af manglende ressourcer. Python stopper denne " uendelige " rekursion ved 1.000 opkald ( så en funktion kan kalde sig i en 1.000 tilfælde lang rekursive kæde før Python stopper processen) . Programmøren kan ændre denne værdi gennem systemet bibliotekerne , som dette eksempel : Hej
>>> import sys
>>> sys.setrecursionlimit (2000)
Men på det tidspunkt programmører kan spørge sig selv, hvis rekursion er den bedste løsning på problemet .