IT培訓(xùn)網(wǎng)
IT在線學(xué)習(xí)
1)函數(shù)返回值
函數(shù)返回的值稱為返回值(return value)。在此之前定義的函數(shù)均沒有返回值。之前使用過的內(nèi)建函數(shù),大部分都有返回值,如int()函數(shù):
- >>> int(3.14) # 返回值是3
- 3
一直使用交互模式常常會讓初學(xué)者默認為打印出的內(nèi)容就是函數(shù)的返回值,如這種情況:
- >>> def hello_world(): # 這個函數(shù)沒有返回值
- ... print('Hello,world!')
- ...
- >>> hello_world() # 調(diào)用這個函數(shù)時,誤以為有返回值Hello, world!
- Hello,world!
- >>> h = hello_world() # 試圖將返回值賦給變量h,因為再次調(diào)用函數(shù),所以打印結(jié)果
- Hello,world!
- >>> print(h) # 打印h的值,發(fā)現(xiàn)h的值是None,證明該函數(shù)沒有返回值
- None
自定義函數(shù)時,使用return語句來返回一個值到調(diào)用函數(shù)的代碼行。例如,將hello_world()改寫成有返回值的函數(shù):
- >>> def hello_world():
- ... return 'Hello,world!' # 返回值是'Hello, world!'
- ...
- >>> h = hello_world()
- >>> print(h) # 現(xiàn)在h有值了,證明該函數(shù)有返回值
- Hello, world!
寫在return后面的值就是返回值。如果一個函數(shù)沒有return語句,或者return語句后面沒有任何值,函數(shù)會默認返回None。None和True、False一樣,是一個內(nèi)建值(類似于內(nèi)建函數(shù)),是由Python解釋器定義的,None代表什么都沒有。
函數(shù)在執(zhí)行return語句之后,就立即返回,不再執(zhí)行函數(shù)體內(nèi)return語句后面的所有語句:
- >>> def f():
- ... print('a')
- ... print('b')
- ... return
- ... print('c')
- ... print('d')
- ...
- >>> f()
- a
- b
可以發(fā)現(xiàn)上面的函數(shù)只打印了“a”和“b”,這是由于函數(shù)在return語句處就終止了。在編程時可以利用這一特性,讓函數(shù)在某些條件下終止。
2)匿名函數(shù)
Python中的匿名函數(shù)(anonymous function)是指沒有名字的函數(shù)。一般函數(shù)使用def關(guān)鍵字定義,而匿名函數(shù)使用lambda關(guān)鍵字定義,故匿名函數(shù)也稱為lambda函數(shù)。
匿名函數(shù)的語法格式如下:
lambda 參數(shù):表達式
冒號的左邊為函數(shù)參數(shù),多個參數(shù)使用逗號隔開;冒號的右邊為表達式。匿名函數(shù)的參數(shù)可以有任意個數(shù)的參數(shù),但是只能有一個表達式,這個表達式的計算結(jié)果作為匿名函數(shù)的返回值(它不能使用return語句,但是會默認返回計算結(jié)果)。匿名函數(shù)可以在任何需要普通函數(shù)(普通函數(shù)是指使用def關(guān)鍵字定義的函數(shù))的地方使用。下面是一個匿名函數(shù),它計算了兩個數(shù)字的乘積:
- >>> # 由于匿名函數(shù)沒有名字,因此,如果想要重復(fù)使用它,需要將它與一個名字綁定
- >>> mul = lambda x, y: x * y
- >>> mul(9, 9)
- 81
- >>> mul(3, 5)
- 15
可以使用def關(guān)鍵字來重新定義同一個函數(shù):
- >>> def mul(x, y):
- ... return x * y
- ...
- >>> mul(9, 9)
- 81
- >>> mul(3, 5)
- 15
看起來匿名函數(shù)比def關(guān)鍵字定義的函數(shù)只是簡便了一點,好像沒有必要學(xué)習(xí)。但實際上,匿名函數(shù)很多時候都會作為高階函數(shù)(higher-order function)的參數(shù)使用。
如果對Python開發(fā)感興趣或者想要深入學(xué)習(xí)的現(xiàn)在可以免費領(lǐng)取學(xué)習(xí)大禮包哦(點擊領(lǐng)取80G課程資料 備注:領(lǐng)資料)。
>>本文地址:http://uj2y2uok.com/zhuanye/2020/59244.html
聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
1 您的年齡
2 您的學(xué)歷
3 您更想做哪個方向的工作?