匿名函數(shù)莱没、遞歸函數(shù)與生成器函數(shù) .

前言

變量作用域通孽,全局變量锭吨,局部變量,函數(shù)作為參數(shù)辛孵,匿名函數(shù)厨疙,遞歸函數(shù),生成器函數(shù)轩娶。

變量作用域

1>變量的作用域就是定義的變量可以使用的代碼范圍

2>全局變量 是可以被所有的函數(shù)訪問的,除非被刪除掉儿奶,否則一直存活到腳本運(yùn)行結(jié)束。

3>局部變量只能在函數(shù)或代碼塊內(nèi)部被調(diào)用,一旦函數(shù)或代碼塊執(zhí)行完成鳄抒,數(shù)據(jù)就會(huì)釋放闯捎。引用比全局變量速度快,應(yīng)優(yōu)先考慮使用许溅。

變量的作用域

1>當(dāng)程序運(yùn)行時(shí)瓤鼻,python先從局部作用域開始搜索變量,如果局部沒有則從全局中找贤重,找不到會(huì)拋出NameError茬祷,如果全局變量與局部變量重名,則內(nèi)部訪問則是局部變量并蝗,外部是全局變量祭犯。

2>在函數(shù)中想要對(duì)全局變量進(jìn)行修改,要用到關(guān)鍵字global借卧。

匿名函數(shù)

1>lambda? 參數(shù)1盹憎,參數(shù)2… : 返回值。

2>print((lambda x,y,z:x+y+z)(1,2,3))铐刘。

遞歸函數(shù)

程序調(diào)用自身的編程技巧稱為遞歸(recursion)陪每。

# 使用遞歸方法實(shí)現(xiàn)5!

```def func(n):

????if n == 1 or n == 0:

????????????return 1

????????else:

????????????return n * func(n-1)

print(func(5))```

遞歸函數(shù)優(yōu)缺點(diǎn)

1>遞歸函數(shù)的優(yōu)點(diǎn)就是定義簡(jiǎn)單,邏輯清楚镰吵。

2>缺點(diǎn)是遞歸效率不高檩禾,因?yàn)槊恳淮握{(diào)用都有相應(yīng)的數(shù)值存放在棧,而棧的空間是有限的

3>此在寫函數(shù)時(shí)候要注意不可無(wú)限遞歸或者遞歸次數(shù)非常大

遞歸函數(shù)

要求輸入一個(gè)數(shù)字表示是第幾個(gè)數(shù)字疤祭,正確輸出第n個(gè)斐波那契數(shù)

def fun(n):

????if n < 0:

????????print('輸入有誤盼产!')

????elif n == 1 or n == 2:

????????return 1

????else:

????????return fun(n-1) + fun(n-2)

print(fun(6))

生成器函數(shù)

我們之前學(xué)過(guò)元組生成器.(i for i in range(10))。

yield語(yǔ)句的函數(shù)也可以用來(lái)創(chuàng)建生成器對(duì)象勺馆。

每次執(zhí)行到y(tǒng)ield語(yǔ)句并返回一個(gè)值之后會(huì)暫拖肥郏或掛起后面代碼的執(zhí)行。

下次通過(guò)生成器對(duì)象的__next__()方法草穆、內(nèi)置函數(shù)next()灌灾、for循環(huán)遍歷生成器對(duì)象元素或其他方式顯式“索要”數(shù)據(jù)時(shí)恢復(fù)執(zhí)行。

生成器--斐波那契

def f():

? a, b =1, 1? ? ? ? ? ?

? while True:

????yield a?????? # 暫停執(zhí)行悲柱,需要時(shí)再產(chǎn)生一個(gè)新元素

????a, b = b, a+b??? # 繼續(xù)生成新元素

a= f()

fori in range(10):

print(next(a), end='?')

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末锋喜,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嘿般,老刑警劉巖段标,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異炉奴,居然都是意外死亡逼庞,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門盆佣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)往堡,“玉大人,你說(shuō)我怎么就攤上這事共耍÷腔遥” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵痹兜,是天一觀的道長(zhǎng)穆咐。 經(jīng)常有香客問我,道長(zhǎng)字旭,這世上最難降的妖魔是什么对湃? 我笑而不...
    開封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮遗淳,結(jié)果婚禮上拍柒,老公的妹妹穿的比我還像新娘。我一直安慰自己屈暗,他們只是感情好拆讯,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著养叛,像睡著了一般种呐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上弃甥,一...
    開封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天爽室,我揣著相機(jī)與錄音,去河邊找鬼淆攻。 笑死阔墩,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的瓶珊。 我是一名探鬼主播啸箫,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼艰毒!你這毒婦竟也來(lái)了筐高?” 一聲冷哼從身側(cè)響起搜囱,我...
    開封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤丑瞧,失蹤者是張志新(化名)和其女友劉穎柑土,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绊汹,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡稽屏,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了西乖。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狐榔。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖获雕,靈堂內(nèi)的尸體忽然破棺而出薄腻,到底是詐尸還是另有隱情,我是刑警寧澤届案,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布庵楷,位于F島的核電站,受9級(jí)特大地震影響楣颠,放射性物質(zhì)發(fā)生泄漏尽纽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一童漩、第九天 我趴在偏房一處隱蔽的房頂上張望弄贿。 院中可真熱鬧,春花似錦矫膨、人聲如沸差凹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)直奋。三九已至,卻和暖如春施禾,著一層夾襖步出監(jiān)牢的瞬間脚线,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工弥搞, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留邮绿,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓攀例,卻偏偏與公主長(zhǎng)得像船逮,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子粤铭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354