Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> python Programming >> Content

    Python rekursiva funktioner

    rekursiva funktioner är funktioner som kallar sig i sin definition . Eftersom en rekursiv funktion kallar sig själv för att utföra sin uppgift , kan det göra jobb som innehåller identiska arbete på flera dataobjekt lättare att konceptualisera , planera och skriva . Däremot kan rekursion vara systemet - intensiva eller hamna överbelasta systemet om rekursion inte stannar . Skriva rekursiva funktioner i Python är ungefär som att använda rekursiva funktioner i andra programmeringsspråk , med samma fördelar och fallgropar . Sample Recursion

    rekursiva funktioner kallar sig själva som en del av sin definition . Till exempel :

    >>> def faktor ( x ) :

    . . . faktor ( x ) katalog

    Denna funktion kommer att fortsätta att kalla sig tills systemet inte längre kan hålla mängden funktionsanrop gjort ( funktionsanrop bor i minnet som alla andra uppgifter ) . Dock förenklar hur en rekursiv funktion fungerar konceptuellt : En funktion ( faktor ) kallar sig ( faktor ( x ) ) som en del av sin definition


    basfallen . En rekursiv funktion måste ha vad som kan kallas " basfallen , " eller villkor som berättar funktionen för att stoppa dess rekursion . Detta kan vara något villkor att funktionen skulle ha uppfyllt som en del av sin verksamhet . Som ett klassiskt exempel , finner faktoriella funktion fakulteten av ett tal n ( n! , eller n * n- 1 * n- 2 ... 0 ) . Så fakulteten av 3 skulle beräkna till 3 * 2 * 1 = 6 . En programmerare kan använda siffrorna 0 som basfall av denna funktion :

    >>> Om x == 0 :

    . . . tillbaka 1
    rekursion


    Om faktoriell funktionen nu har ett basfall ( x == 0 ) , då rekursion kommer att stanna vid detta tillstånd . Så skulle det bara vara en fråga om att använda rekursion för att utföra faktoriell operationen :

    >>> annanstans :

    . . . avkastning x * faktor ( x - 1 ) katalog p Om x inte är lika med 0 , då rekursion börjar /fortsätter . Avkastningen uttalande kallar " faktor " och vänta . Varje ny funktionsanrop kommer att göra detsamma , ringer och väntar till sista funktionen samtal (när x == 0 ) returnerar 1 . Därefter kommer varje tidigare samtal avsluta return ( multiplicera det returnerade värdet från " faktor " med x ) tills fakultet returneras . Addera Python rekursion

    rekursion i något språk kan hamna i en oändlig loop : det är en rekursiv struktur som aldrig tar slut förrän systemet slutar det på grund av bristande resurser . Python stoppar denna " oändlig" rekursion vid 1000 samtal ( så en funktion anropa sig själv i en 1000 instans - lång rekursiv kedjan innan Python stoppar processen ) . Programmeraren kan ändra detta värde genom systemet biblioteken , som följande exempel :

    >>> import sys

    >>> sys.setrecursionlimit ( 2000 ) katalog

    Men på den punkten programmerare kan fråga sig om rekursion är den bästa lösningen på problemet .

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur till Öppen CMD i bakgrunden med Python
    ·Tid kvar Funktion i Python
    ·Hur man använder Python Script för MobiDeDRM
    ·Hur man laddar ner filer från webbsidor med Python 3.x…
    ·Hur man läser den sista raden i en fil i Python
    ·Hur man gör Python Open
    ·Hur en Läs textfil i Python
    ·Hur man använder en Twitter Python Script
    ·Vad är stegvärden i Python
    ·Skillnader mellan skriv & Writeline i Python
    Utvalda artiklarna
    ·Hur man skapar ett installationsprogram för en Windows…
    ·Konvertera RTF till oformaterad text i Visual Basic
    ·Hur Kopiera Strängar i VBA
    ·Visual Basic Databaser och Dao
    ·Hur till Bädda in Python
    ·Konvertera Oracle till Exponent
    ·Hur man skapar JQuery händelsehanterare
    ·Skillnaden mellan funktioner och subrutiner i Visual Ba…
    ·Vad är en array i VB.NET
    ·Hur Defrag en VMWare Bild
    Copyright © Dator Kunskap http://www.dator.xyz