2018-08-30 Day9-函數(shù)基礎(chǔ)02

一豆挽、匿名函數(shù)

匿名函數(shù)本質(zhì)還是函數(shù)闸拿,之前函數(shù)的所有內(nèi)容仍然適用。

1掐隐、匿名函數(shù)的聲明

函數(shù)名 = lambda 參數(shù)列表:返回值

2、說明

函數(shù)名:本質(zhì)是一個變量存儲右邊的函數(shù)线欲。(可無)
lambda:聲明匿名函數(shù)的關(guān)鍵字。
參數(shù)列表:參數(shù)名1,參數(shù)名2参萄,......
冒號:固定寫法。
返回值:表達(dá)式的值就是返回值煎饼。

#用匿名函數(shù)計算兩個數(shù)的和
my_sum = lambda x, y: x + y
print(my_sum(1,2))

3
3讹挎、調(diào)用

匿名函數(shù)的調(diào)用和普通函數(shù)一樣:函數(shù)名(實參)

#1、寫一個匿名函數(shù)吆玖,獲取指定數(shù)字列表筒溃,指定下標(biāo)的值得1/2
x = lambda list1,index:list1[index]/2
print(x([1,2,3,4,5],3))

# 2、獲取一個列表所有元素的和和平均值(sum函數(shù)可以計算一個序列的和)
x = lambda list2 : (sum(list2), sum(list2)/len(list2))
sum,average = x([1,2,3,4,5,6])
print(sum,average)
#或者這樣取值
#print(x([1,2,3,4,5,6])[0])  

函數(shù)的調(diào)用過程是一個壓棧的過程:
每次調(diào)用一個函數(shù)沾乘,系統(tǒng)就會在內(nèi)存區(qū)域中的棧區(qū)間取開辟空間怜奖,保存函數(shù)調(diào)用產(chǎn)生的數(shù)據(jù)。當(dāng)函數(shù)調(diào)用完成后翅阵,對應(yīng)的棧區(qū)間會自動銷毀歪玲。
函數(shù)調(diào)用時產(chǎn)生的棧區(qū)間中保存的數(shù)據(jù)有:形參、函數(shù)中聲明變量

二怎顾、函數(shù)作用域

作用域:指的是一個變量能夠使用的范圍

1读慎、全局變量(global)
  • 全局變量:就是聲明在函數(shù)和類外面的變量都是全局變量。
  • 全局變量作用域:從聲明開始到文件結(jié)束槐雾。
2夭委、局部變量(local)
  • 局部變量:聲明在函數(shù)中或者類的變量就是局部變量。
  • 局部變量的作用域:從聲明開始到函數(shù)結(jié)束(類結(jié)束)募强。
    注意:函數(shù)的參數(shù)是聲明在函數(shù)中的局部變量株灸,同樣不能在別的函數(shù)中使用。
# x, y, z都是局部變量
def func3(x, y):
  z = 'ab'
  • 在局部區(qū)域內(nèi)修改全局變量的值 --- global
c = 100
def func1():
    global c   #修改全局變量
    c = 200
func1()
print(c)
  • 在局部的局部中修改局部變量 --- nonlocal
def func5():
    nn = 10
    def func6():
        nonlocal nn
        nn = 20
        print('func6',nn)
    func6()
    print('func5', nn)
func5()

func6 20
func5 20

三擎值、遞歸函數(shù)

遞歸函數(shù):在函數(shù)的函數(shù)體中調(diào)用函數(shù)本身慌烧,這樣的函數(shù)就是遞歸函數(shù)。

注意:盡量不使用鸠儿,遞歸函數(shù)反復(fù)調(diào)用函數(shù)屹蚊,開辟空間,消耗內(nèi)存进每。

怎么寫遞歸函數(shù)汹粤?

(1)、找臨界值田晚。(找到讓循環(huán)結(jié)束的值/ 找到能夠確定函數(shù)結(jié)果值)
(2)嘱兼、假設(shè)函數(shù)的功能已經(jīng)實現(xiàn)的前提下,找關(guān)系 f(n)和 f(n-1)/ 當(dāng)次循環(huán)和上次循環(huán)的關(guān)系贤徒。
(3)芹壕、根據(jù) f(n)和 f(n-1)的關(guān)系汇四,來通過 f(n-1)實現(xiàn) f(n)的效果。

練習(xí):

#練習(xí)一
#1+2+3+...+100
def my_sum(n):
    #在臨界值的位置一定要讓函數(shù)結(jié)束
    if n == 1:
        return 1
    return my_sum(n-1) + n
print(my_sum(100))

結(jié)果:
5050

#練習(xí)二:計算斐波那契數(shù)列1,1,2,3,5,8...第n個數(shù)
def fib(n):
    if n == 1 or n == 2:
        return 1
    return fib(n-1) + fib(n-2)
print(fib(5))

結(jié)果:
5

#練習(xí)三:使用遞歸完成以下效果
n = 3
#***
#**
# *
def xxx(n):
    if n == 1 :
        print('*')
        return
    print('*'*n)
    xxx(n-1)
xxx(3)

結(jié)果:
***
**
*

思考一下程序結(jié)果和運行過程:

def func():
    a = []
    for i in range(5):
        a.append(lambda x:x*i)     #先把匿名函數(shù)存進(jìn)去踢涌,沒有計算返回值通孽。
    return a     #返回func()值時,開始計算列表內(nèi)的數(shù)斯嚎,此時 i = 4利虫,所以列表內(nèi)所有匿名函數(shù) i值都為4
aa = func()
print(aa[0](2), aa[2](2), aa[3](2))

結(jié)果:
8 8 8
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末挨厚,一起剝皮案震驚了整個濱河市堡僻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌疫剃,老刑警劉巖钉疫,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異巢价,居然都是意外死亡牲阁,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進(jìn)店門壤躲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來城菊,“玉大人,你說我怎么就攤上這事碉克×杌#” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵漏麦,是天一觀的道長客税。 經(jīng)常有香客問我,道長撕贞,這世上最難降的妖魔是什么更耻? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮捏膨,結(jié)果婚禮上秧均,老公的妹妹穿的比我還像新娘。我一直安慰自己号涯,他們只是感情好目胡,可當(dāng)我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著诚隙,像睡著了一般讶隐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上久又,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天巫延,我揣著相機(jī)與錄音效五,去河邊找鬼。 笑死炉峰,一個胖子當(dāng)著我的面吹牛畏妖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播疼阔,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼戒劫,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了婆廊?” 一聲冷哼從身側(cè)響起迅细,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎淘邻,沒想到半個月后茵典,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡宾舅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年统阿,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片筹我。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡扶平,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蔬蕊,到底是詐尸還是另有隱情结澄,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布袁串,位于F島的核電站概而,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏囱修。R本人自食惡果不足惜赎瑰,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望破镰。 院中可真熱鬧餐曼,春花似錦、人聲如沸鲜漩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽孕似。三九已至踩娘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間喉祭,已是汗流浹背养渴。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工雷绢, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人理卑。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓翘紊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親藐唠。 傳聞我的和親對象是個殘疾皇子帆疟,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,150評論 0 13
  • 一宇立、快捷鍵 ctr+b 執(zhí)行ctr+/ 單行注釋ctr+c ...
    o_8319閱讀 5,823評論 2 16
  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 13,813評論 0 38
  • 警察主席是女人踪宠,頭銜卻是陽性,怎么辦泄伪? 今年四月份殴蓬,柏林迎來了歷史上首位女警察主席。剛一上任蟋滴,各方政客就對主席辦公...
    紫九九閱讀 1,817評論 4 3
  • 亞亞生日任性回饋: 自己的生日得嗨一把^_^(9月20日) 特在此向一直以來支持我的盆友們?nèi)涡曰仞仯?凡在亞亞家買...
    lucy丫丫閱讀 206評論 0 0