Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Python rekurzívne funkcie

Rekurzívny funkcie sú funkcie , ktoré sa nazývajú vo svojej definícii . Vzhľadom k tomu , rekurzívne volanie funkcie na seba plniť svoju úlohu , môže to robiť úlohy , ktoré obsahujú rovnakú prácu na viacerých dátových objektov ľahšie Konceptualizácia , plán a písať . Avšak , rekurzia môže byť systém náročné , alebo skončí preťaženie systému, ak rekurzia nezastaví . Písanie rekurzívne funkcie v Pythone je podobné použitie rekurzívne funkcie v iných programovacích jazykoch , s tými istými výhodami a úskalia . Vzorka Rekurzia

Rekurzívny funkcie sa nazývajú ako súčasť ich definície . Napríklad :

>>> def faktor ( x ) :

. . . faktor ( x )

Táto funkcia bude naďalej nazývať , kým systém už nemôže pojať množstvo funkcií hovory ( volanie funkcie sú umiestnené v pamäti , rovnako ako akékoľvek iné údaje ) . Avšak , to zjednodušuje , ako rekurzívne funkcie pracuje koncepčne : funkcie ( faktor ) sa nazýva ( faktor ( x ) ) v rámci svojej definície
základné veci

. rekurzívne funkcie musí mať to , čo by sa dalo nazvať " základné prípady " , alebo podmienky , ktoré hovoria , že funkcia zastaviť jeho rekurziu . To by mohlo byť akákoľvek podmienka , že funkcia môže mať spokojný ako súčasť svojej činnosti . Ako klasický príklad , faktoriál funkcia zistí faktoriál čísla n ( n! , alebo n * n-1 * n - 2 ... 0 ) . Takže faktoriál 3 by sa počítať s 3 * 2 * 1 = 6. Programátor môže použiť číslo 0 ako základný prípade tejto funkcie :

>>> if x == 0 :

. . . návrat 1
Rekurzia

funkcie pre výpočet faktoriálu má teraz základné veci ( x == 0 ) , potom rekurzia sa zastaví na tomto stave . Tak , to by bolo len otázkou použitie rekurzia vykonať faktoriálu operáciu :

>>> inde :

. . . návrat x * faktor ( x - 1 )

Ak x nie je rovné 0 , potom rekurzia začne /pokračovať . Príkaz return zavolá " faktor " a čakať . Každý nový volanie funkcie bude robiť to isté , volanie a čakať , až na posledné volanie funkcie (ak x == 0 ) vráti 1. Potom sa každý predchádzajúci hovor ukončíte príkaz return ( vynásobte vrátenú hodnotu z " faktora " od x ) , kým sa vrátil faktoriál .
ClipArt Python rekurzia

rekurzia v akýkoľvek jazyk môže skončiť v nekonečnej slučke : To znamená , rekurzívne štruktúru , ktorá nikdy nekončí , kým sa systém zastaví ju z dôvodu nedostatku finančných prostriedkov . Python sa zastaví tento " nekonečný " rekurziu na 1000 hovorov ( takže funkcia môže volať seba v 1000 inštancie dlhú rekurzívne reťazca pred Python zastaví proces ) . Programátor môže túto hodnotu zmeniť pomocou systémových knižníc , ako je tento príklad :

>>> import sys

>>> sys.setrecursionlimit ( 2000 )

Avšak , v tomto bode programátori mohli pýtať sami seba , či rekurzia je najlepšie riešenie problému .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené