Python recursieve functies



Recursieve functies zijn functies die zichzelf in hun definitie noemen. Omdat een recursieve functie zelf haar taak uit te voeren verzoekt, kan het maken van banen die identieke werk op meerdere gegevensobjecten makkelijker bevatten te conceptualiseren, te plannen en te schrijven. Recursie kan echter worden systeem-intensieve of eindigen overbelasting van het systeem als de recursie niet stopt. Het schrijven van recursieve functies in Python is vergelijkbaar met het gebruik van recursieve functies in andere programmeertalen, met de zelfde voordelen en valkuilen.

Monster recursie

  • Recursieve functies noemen zichzelf als onderdeel van hun definitie. Bijvoorbeeld:

    def factor(x):

    ... factor(x)

    Deze functie zal blijven aandringen zich totdat het systeem kan niet langer de hoeveelheid functieoproepen (functie oproepen zich in geheugen als geen andere gegevens bevinden). Echter, dit vereenvoudigt hoe een recursieve functies werken conceptueel: een functie (factor) noemt zichzelf (factor(x)) als onderdeel van de definitie.

Basis gevallen

  • Een recursieve functie moet hebben wat genoemd zou kunnen worden "base gevallen", of omstandigheden die de functie om te stoppen met haar recursie vertellen. Dit zou iedere omstandigheid die de functie kon voldaan als onderdeel van haar operatie. Als een klassiek voorbeeld, de faculteitsfunctie vindt de faculteit van een getal n (n!, of n n-1 n-2... 0). zodat de faculteit van 3 zou berekenen tot 3 2 1 = 6. Een programmeur kan gebruik maken van het cijfer 0 als het basisscenario van deze functie:

    Als x == 0:

    ... return 1

Recursie

  • Als de faculteitsfunctie nu een basisscenario heeft (x == 0), dan recursie op deze voorwaarde zal stoppen. Dus, zou het alleen een kwestie van het gebruik van recursie de faculteit bewerking uit te voeren:

    anders:

    ... x*factor(x-1) retourneren

    Als x niet gelijk is aan 0, vervolgens blijft de recursie beginnen /. De instructie return "factor" bellen u en wachten. Elke nieuwe functie-aanroep zal hetzelfde doen, bellen en wachten tot de laatste functie-aanroep (wanneer x == 0) geeft als resultaat 1. Vervolgens elk vorige gesprek zal eindigen de instructie return (vermenigvuldig de geretourneerde waarde van de "factor" door x) tot de faculteit wordt geretourneerd.

Python recursie

  • Recursie in elke taal kan eindigen in een oneindige lus: dat wil zeggen een recursieve structuur die nooit eindigt totdat het systeem het wegens stopt gebrek aan middelen. Python stopt deze "oneindige" recursie bij 1.000 oproepen (dus een functie zelf in een keten van 1.000 aanleg durende recursieve bellen kan voordat Python het proces stopt). De programmeur kunt het wijzigen van deze waarde door de systeembibliotheken, zoals in het volgende voorbeeld:

    importeren van sys

    sys.setrecursionlimit(2000)

    Echter, op dat moment programmeurs kunnen vragen zelf als recursie de beste oplossing voor het probleem is.

Gerelateerde Artikelen

Python afdrukken functies

Python afdrukken functies

De fundamentele afdrukfunctie in Python worden afgedrukt voor een tekenreeks of een reeks tekens naar de standaarduitvoer--meestal de console die u gebruikt voor het aanroepen van het programma. U kunt het ook gebruiken om af te drukken van deze teke
De Python Strip functie

De Python Strip functie

De programmeertaal Python biedt een scala aan bibliotheken en functies waarmee een programmeur gemakkelijk alledaagse of gemeenschappelijke taken kunt uitvoeren. Aangezien vele Python programma's het manipuleren van tekenreeksen als invoer of uitvoer
Functie Prototype in Python

Functie Prototype in Python

Python dienen functies als een basis voor elk complex project. De praktijk van prototyping functies, of hen te declareren voordat u definieert, bestaat al sinds de uitvinding van de C programmeertaal. Niet alle talen zich gedragen op dezelfde manier.
Hoe speel je een. WAV-bestand in Python

Hoe speel je een. WAV-bestand in Python

Python's uitgebreide verzameling standaard bibliotheken kunnen programmeurs om een breed scala van taken te programmeren. Python is een "batteries included" taal: niets anders toe te voegen. Trouw aan vorm heeft Python ingebouwde functies voor h
Het gebruik van Echo in Python

Het gebruik van Echo in Python

In tegenstelling tot PHP, de programmeertaal Python beschikt niet over een "echo"-functie die een tekenreeks met uitvoer informatie produceert. Python gebruikt in plaats daarvan een ander soortgelijk instructie genaamd "afdrukken" tot
Verschillen tussen schrijven & Writeline in Python

Verschillen tussen schrijven & Writeline in Python

Python is een krachtige, volledig-gekenmerkte, gratis, open-source programmeertaal die wordt gebruikt in het onderwijs, wetenschap, overheid en industrie. De Python taal heeft een grote standaard bibliotheek van functies waarmee programmeurs maken va
Het gebruik van functies in C++

Het gebruik van functies in C++

Een functie is code die herhaaldelijk in een programma kan worden uitgevoerd. Een C++-functie bestaat uit een label, een input argumentenlijst, een type van de retourwaarde (als de functie geeft als resultaat een waarde of "ongeldig") en het toe
Hoe te repareren van de fout "Javascript Is onvoldoende ruimte in Stack" voor vrij

Hoe te repareren van de fout "Javascript Is onvoldoende ruimte in Stack" voor vrij

De 'Out of ruimte in Stack'-fout in uw JavaScript-programmeertaal is over het algemeen aangeduid als stackoverloop. Wanneer u JavaScript gebruikt de functies die wordt gebruikt gekopieerd naar het geheugen. De hoeveelheid geheugen op de JavaScript he
De hoogte van een binaire boom in Java

De hoogte van een binaire boom in Java

Efficiƫnte datastructuren optimaliseren van een programma door waardoor het makkelijker voor het programma om de gegevens die het nodig heeft te vinden. Binaire zoekopdracht bomen zijn een van de meest efficiƫnte datastructuren voor het zoeken door e
Hoe maak je een Website op Heliohost

Hoe maak je een Website op Heliohost

Heliohost biedt gratis webhosting voor mensen met kennis van web programmeren. Het is zelf omschreven als "free web hosting voor professionals." De site ondersteunt een breed scala van scripting talen zoals PHP, Ruby on Rails, Perl en Python.Fun
Hoe maak je een binaire boom in C

Hoe maak je een binaire boom in C

Binaire bomen in C zijn een goede manier om dynamisch het ordenen van gegevens voor het gemakkelijke zoeken. Ze vereisen echter een heleboel werk te handhaven.De binaire boom makenStructuur uw binaire boom. Elke binaire boom moet een structuur, zelfs
De resterende functie van de tijd in Python

De resterende functie van de tijd in Python

De Python programmeertaal biedt een suite van krachtige en nuttige modules om alledaagse taken te behandelen. Iets zo eenvoudig als het vergelijken van datums en tijden die, in werkelijkheid, zijn een uitdaging in computerprogrammering, kan worden be
Hoe maak je een functie voor het converteren van temperatuur met Python

Hoe maak je een functie voor het converteren van temperatuur met Python

Python is een interpretatieve, open-source programmeertaal die ideaal is voor beginnende programmeurs als gevolg van de natuurlijke taal-syntaxis. Bij het leren programmeren in Python, kan u worden gevraagd om een temperatuur conversiefunctie maken.
Het gebruik van functies in Python

Het gebruik van functies in Python

De functie is de meest fundamentele manier van abstraheren van een taak in moderne programmeertalen. Elke code die meerdere malen wordt herhaald in uw programma is een kandidaat voor de functie gebruik in Python. Bijvoorbeeld, als uw programma behand