国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

python學(xué)習(xí)筆記-遞歸函數(shù)

geekidentity / 3276人閱讀

摘要:如果一個函數(shù)在內(nèi)部調(diào)用函數(shù)自身,那么這個就是遞歸函數(shù)。遞歸函數(shù)也可以用循環(huán)的方式實(shí)現(xiàn)。但是遞歸函數(shù)邏輯較為簡單。但是在使用遞歸函數(shù)的時候,要注意防止遞歸函數(shù)調(diào)用過多導(dǎo)致棧溢出。

函數(shù)就像一個盒子,將相關(guān)的一些功能打包成一個函數(shù),以供調(diào)用。函數(shù)內(nèi)部可以調(diào)用其他函數(shù),也可以調(diào)用這個函數(shù)自身。
如果一個函數(shù)在內(nèi)部調(diào)用函數(shù)自身,那么這個就是遞歸函數(shù)。
我們舉一個簡單的例子。
數(shù)學(xué)中我們知道100的階乘,100!=1009998...321.
分解開來,100!=10099!,99!=9998!,98!=98*97!...
那么我們定義一個函數(shù)來計(jì)算階乘:

def fact(n):
    return n*fact(n-1)

上面這個函數(shù)看起來是一個數(shù)字不斷地跟與它小1的數(shù)相乘,卻沒有停止的時候。所以我們必須對上述函數(shù)進(jìn)行改造,讓它能在n=1的時候,計(jì)算完就停下來。

def fact(n):
    if n==0:
        return 1
    else:
        return n*fact(n-1)

遞歸函數(shù)也可以用循環(huán)的方式實(shí)現(xiàn)。但是遞歸函數(shù)邏輯較為簡單。但是在使用遞歸函數(shù)的時候,要注意防止遞歸函數(shù)調(diào)用過多導(dǎo)致棧溢出。
想要了解更多關(guān)于遞歸函數(shù)棧溢出和相關(guān)優(yōu)化措施,可以閱讀廖雪峰老師的博客。
http://www.liaoxuefeng.com/wi...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/44269.html

相關(guān)文章

  • python學(xué)習(xí)筆記之一(.py文件里輸入中文報(bào)錯)

    摘要:定義默認(rèn)參數(shù)要牢記一點(diǎn)默認(rèn)參數(shù)必須指向不變對象尾遞歸調(diào)用函數(shù)本身,但是的返回值不包含表達(dá)式。而尾指針相當(dāng)于把常規(guī)的遞歸反過來,增加一層遞歸的同時釋放前一個遞歸指針,所以能夠始終保持只有一個棧幀在使用中。 教程 1、python大小寫敏感 如果字符串里面有很多字符都需要轉(zhuǎn)義,就需要加很多,為了簡化,Python還允許用r表示內(nèi)部的字符串默認(rèn)不轉(zhuǎn)義 >>> print ...

    heartFollower 評論0 收藏0
  • python學(xué)習(xí)筆記 函數(shù)

    摘要:一等函數(shù)在中,函數(shù)是一等對象。匿名函數(shù)關(guān)鍵字在表達(dá)式內(nèi)創(chuàng)建匿名函數(shù)然而,簡單的句法限制了函數(shù)的定義體只能使用純表達(dá)式,即函數(shù)的定義體中不能賦值,不能使用等語句。匿名函數(shù)適合用于作為函數(shù)的參數(shù) 一等函數(shù) 在python中,函數(shù)是一等對象。編程語言理論家把一等對象定義為滿足以下條件的程序?qū)嶓w: 在運(yùn)行時創(chuàng)建 能賦值給變量或數(shù)據(jù)結(jié)構(gòu)中的元素 能作為參數(shù)傳給函數(shù) 能作為函數(shù)的返回結(jié)果 在p...

    Scorpion 評論0 收藏0
  • Python基礎(chǔ)教程》第六章--讀書筆記

    摘要:第六章抽象本章會介紹如何將語句組織成函數(shù)。關(guān)鍵字參數(shù)和默認(rèn)值目前為止,我們使用的參數(shù)都是位置參數(shù),因?yàn)樗鼈兊奈恢煤苤匾聦?shí)上比它們的名字更重要。參數(shù)前的星號將所有值放置在同一個元祖中。函數(shù)內(nèi)的變量被稱為局部變量。 第六章:抽象 本章會介紹如何將語句組織成函數(shù)。還會詳細(xì)介紹參數(shù)(parameter)和作用域(scope)的概念,以及遞歸的概念及其在程序中的用途。 懶惰即美德 斐波那契數(shù)...

    AnthonyHan 評論0 收藏0
  • Python筆記

    摘要:針對尾遞歸優(yōu)化的語言可以通過尾遞歸防止棧溢出。尾遞歸事實(shí)上和循環(huán)是等價(jià)的,沒有循環(huán)語句的編程語言只能通過尾遞歸實(shí)現(xiàn)循環(huán)。標(biāo)準(zhǔn)的解釋器沒有針對尾遞歸做優(yōu)化,任何遞歸函數(shù)都存在棧溢出的問題。 python 頭部: #!/usr/bin/env python # -*- coding: utf-8 -*- 函數(shù)的參數(shù) Python的函數(shù)具有非常靈活的參數(shù)形態(tài),既可以實(shí)現(xiàn)簡單的調(diào)用,又可以傳入...

    yuxue 評論0 收藏0
  • 【算法】算法圖解筆記_遞歸

    遞歸是個有意思的概念,正如在前面所說,遞歸能讓算法的可讀性大大提高,而且通常要比使用循環(huán)結(jié)構(gòu)更能寫出準(zhǔn)確的算法。這本書形象引入了遞歸,并沒有太深入,所以我進(jìn)行了一點(diǎn)添油加醋。 遞歸 概念 遞歸其實(shí)就是自己調(diào)用自己。可以從多種維度對遞歸分類,我見過的最常見的分類: 直接遞歸 自己直接調(diào)用自己。如: --haskell length :: [a] -> Int length [] = 0 length...

    tomlingtm 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<