Datamaskin
  | Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> Python Programming >> Content
    Python rekursive funksjoner
    rekursive funksjoner er funksjoner som kaller seg i deres definisjon . Fordi en rekursiv funksjon kaller på seg til å utføre sin oppgave , kan det gjøre jobber som inneholder identiske arbeid på flere data objekter lettere å konseptualisere , planlegge og skrive. Imidlertid kan rekursjon være system -intensive eller ende opp overbelastning av systemet hvis rekursjon ikke stoppe. Skrive rekursive funksjoner i Python er lik ved hjelp av rekursive funksjoner i andre programmeringsspråk , med de samme fordelene og fallgruvene . Eksempel på Recursion

    rekursive funksjoner kaller seg selv som en del av deres definisjon . For eksempel : en

    >>> def faktor ( x ) : en

    . . . factor ( x )

    Denne funksjonen vil fortsette å kalle seg frem til systemet ikke lenger kan holde mengden av funksjon kaller gjort ( funksjonskall ligge i minnet som alle andre data) . Men forenkler denne hvordan en rekursive funksjoner arbeider konseptuelt : En funksjon (faktor ) kaller seg (faktor ( x ) ) som en del av sin definisjon
    Base Cases

    . En rekursiv funksjon må ha det som kan kalles " basen saker", eller tilstander som forteller funksjonen til å stoppe sin rekursjon . Dette kan være en hvilken som helst tilstand som funksjonen kunne ha tilfreds som en del av sin drift. Som et klassisk eksempel , finner fakultetet funksjon fakultet til et tall n ( n! , eller n * n - 1 * n- 2 ... 0 ) . Så fakultetet av tre ville beregne til 3 * 2 * 1 = 6 . En programmerer kan bruke nummeret 0 som base case av denne funksjonen : en

    >>> hvis x == 0 : en

    . . . returnere en
    Rekursjon
    p Hvis fakultetet funksjon nå har en base case ( x == 0 ) , deretter rekursjon vil stoppe på denne tilstanden . Så , ville det bare være et spørsmål om å bruke rekursjon til å utføre fakultetet drift : en

    >>> annet : en

    . . . Avkastningen x * faktor ( x - 1 )
    p Hvis x ikke lik 0 , så rekursjon vil begynne /fortsette. Avkastningen uttalelse vil kalle " faktor " og vent . Hver ny funksjon samtale vil gjøre det samme , ringer og venter til siste funksjon samtale (når x == 0 ) returnerer en . Deretter vil hver forrige samtale fullføre avkastningen uttalelse ( multiplisere den returnerte verdien fra " faktor " av x ) til fakultetet er returnert .
    Python Rekursjon

    Rekursjon i alle språk kan ende opp i en uendelig loop : det vil si, en rekursiv struktur som aldri tar slutt før systemet stopper det på grunn av mangel på ressurser. Python stopper denne " uendelig " rekursjon på 1000 samtaler ( slik at en funksjon kan kalle seg i en 1000 instans lange rekursive kjeden før Python stopper prosessen ) . Programmereren kan endre denne verdien gjennom system-biblioteker , slik som dette eksemplet : en

    >>> import sys

    >>> sys.setrecursionlimit ( 2000 )

    Men på det punktet programmerere kan spørre seg selv om rekursjon er den beste løsningen på problemet .

    früher :

     Weiter:
      Relatert Artike
    ·Hvordan å telle ned i Range i Python 
    ·Hvordan få en Python å løpe fra CMD 
    ·Hvordan Mirror et bilde vertikalt og horisontalt gjenno…
    ·Hvordan Test en IP- Range i Python 
    ·Liste over Python Tools 
    ·Hvordan erstatte en dato i Python 
    ·Hvordan lage Python Round Up 
    ·Hvordan Ping API Med Python 
    ·Hvordan til Mark Tall i et Python List 
    ·Slik installerer Python på HostMonster 
      Anbefalte artikler
    ·Typer av Visual Basic Verktøylinjer 
    ·Hvordan skrive Games i Java 
    ·Hvordan å sette sammen en kjørbar JAR Fil 
    ·Slik importerer Maps Into Java 
    ·Hvordan lage en Slide Down Toggle Med jQuery 
    ·Brukerdefinert Unntak i Java 
    ·Hvordan legge til include_path 
    ·The Best Javascript Bilde Sliders 
    ·Hva er Python Hacking 
    ·Hvordan konvertere en streng til en desimal i PHP 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/