400-650-7353
您所在的位置:首頁 > IT干貨資料 > python > 【Python基礎(chǔ)知識(shí)】Python函數(shù)的返回值和匿名函數(shù)

【Python基礎(chǔ)知識(shí)】Python函數(shù)的返回值和匿名函數(shù)

  • 發(fā)布: python培訓(xùn)
  • 來源:python干貨資料
  • 2020-10-30 10:13:49
  • 閱讀()
  • 分享
  • 手機(jī)端入口

1)函數(shù)返回值

函數(shù)返回的值稱為返回值(return value)。在此之前定義的函數(shù)均沒有返回值。之前使用過的內(nèi)建函數(shù),大部分都有返回值,如int()函數(shù):

  1. >>> int(3.14)  # 返回值是3 
  2. 3 

一直使用交互模式常常會(huì)讓初學(xué)者默認(rèn)為打印出的內(nèi)容就是函數(shù)的返回值,如這種情況:

  1. >>> def hello_world():   # 這個(gè)函數(shù)沒有返回值 
  2. ...     print('Hello,world!'
  3. ... 
  4. >>> hello_world()   # 調(diào)用這個(gè)函數(shù)時(shí),誤以為有返回值Hello, world! 
  5. Hello,world! 
  6. >>> h = hello_world()   # 試圖將返回值賦給變量h,因?yàn)樵俅握{(diào)用函數(shù),所以打印結(jié)果 
  7. Hello,world! 
  8. >>> print(h)   # 打印h的值,發(fā)現(xiàn)h的值是None,證明該函數(shù)沒有返回值 
  9. None 

自定義函數(shù)時(shí),使用return語句來返回一個(gè)值到調(diào)用函數(shù)的代碼行。例如,將hello_world()改寫成有返回值的函數(shù):

  1. >>> def hello_world(): 
  2. ...     return 'Hello,world!'  # 返回值是'Hello, world!' 
  3. ... 
  4. >>> h = hello_world()  
  5. >>> print(h)   # 現(xiàn)在h有值了,證明該函數(shù)有返回值 
  6. Hello, world! 

寫在return后面的值就是返回值。如果一個(gè)函數(shù)沒有return語句,或者return語句后面沒有任何值,函數(shù)會(huì)默認(rèn)返回None。None和True、False一樣,是一個(gè)內(nèi)建值(類似于內(nèi)建函數(shù)),是由Python解釋器定義的,None代表什么都沒有。

函數(shù)在執(zhí)行return語句之后,就立即返回,不再執(zhí)行函數(shù)體內(nèi)return語句后面的所有語句:

  1. >>> def f(): 
  2. ...     print('a'
  3. ...     print('b'
  4. ...     return 
  5. ...     print('c'
  6. ...     print('d'
  7. ... 
  8. >>> f() 

可以發(fā)現(xiàn)上面的函數(shù)只打印了“a”和“b”,這是由于函數(shù)在return語句處就終止了。在編程時(shí)可以利用這一特性,讓函數(shù)在某些條件下終止。

2)匿名函數(shù)

Python中的匿名函數(shù)(anonymous function)是指沒有名字的函數(shù)。一般函數(shù)使用def關(guān)鍵字定義,而匿名函數(shù)使用lambda關(guān)鍵字定義,故匿名函數(shù)也稱為lambda函數(shù)。

匿名函數(shù)的語法格式如下:

lambda 參數(shù):表達(dá)式

冒號(hào)的左邊為函數(shù)參數(shù),多個(gè)參數(shù)使用逗號(hào)隔開;冒號(hào)的右邊為表達(dá)式。匿名函數(shù)的參數(shù)可以有任意個(gè)數(shù)的參數(shù),但是只能有一個(gè)表達(dá)式,這個(gè)表達(dá)式的計(jì)算結(jié)果作為匿名函數(shù)的返回值(它不能使用return語句,但是會(huì)默認(rèn)返回計(jì)算結(jié)果)。匿名函數(shù)可以在任何需要普通函數(shù)(普通函數(shù)是指使用def關(guān)鍵字定義的函數(shù))的地方使用。下面是一個(gè)匿名函數(shù),它計(jì)算了兩個(gè)數(shù)字的乘積:

  1. >>> # 由于匿名函數(shù)沒有名字,因此,如果想要重復(fù)使用它,需要將它與一個(gè)名字綁定 
  2. >>> mul = lambda x, y: x * y 
  3. >>> mul(99
  4. 81 
  5. >>> mul(35
  6. 15 

可以使用def關(guān)鍵字來重新定義同一個(gè)函數(shù):

  1. >>> def mul(x, y): 
  2. ...     return x * y 
  3. ... 
  4. >>> mul(99
  5. 81 
  6. >>> mul(35
  7. 15 

看起來匿名函數(shù)比def關(guān)鍵字定義的函數(shù)只是簡(jiǎn)便了一點(diǎn),好像沒有必要學(xué)習(xí)。但實(shí)際上,匿名函數(shù)很多時(shí)候都會(huì)作為高階函數(shù)(higher-order function)的參數(shù)使用。

如果對(duì)Python開發(fā)感興趣或者想要深入學(xué)習(xí)的現(xiàn)在可以免費(fèi)領(lǐng)取學(xué)習(xí)大禮包哦(點(diǎn)擊領(lǐng)取80G課程資料 備注:領(lǐng)資料)。

文章“【Python基礎(chǔ)知識(shí)】Python函數(shù)的返回值和匿名函數(shù)”已幫助

>>本文地址:http://littlerockbway.com/zhuanye/2020/59244.html

THE END  

聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

1 您的年齡

2 您的學(xué)歷

3 您更想做哪個(gè)方向的工作?

獲取測(cè)試結(jié)果
  • 大前端大前端
  • 大數(shù)據(jù)大數(shù)據(jù)
  • 互聯(lián)網(wǎng)營(yíng)銷互聯(lián)網(wǎng)營(yíng)銷
  • JavaJava
  • Linux云計(jì)算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網(wǎng)嵌入式
  • 全域電商運(yùn)營(yíng)全域電商運(yùn)營(yíng)
  • 軟件測(cè)試軟件測(cè)試
  • 室內(nèi)設(shè)計(jì)室內(nèi)設(shè)計(jì)
  • 平面設(shè)計(jì)平面設(shè)計(jì)
  • 電商設(shè)計(jì)電商設(shè)計(jì)
  • 網(wǎng)頁設(shè)計(jì)網(wǎng)頁設(shè)計(jì)
  • 全鏈路UI/UE設(shè)計(jì)UI設(shè)計(jì)
  • VR/AR游戲開發(fā)VR/AR
  • 網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全
  • 新媒體與短視頻運(yùn)營(yíng)新媒體
  • 直播帶貨直播帶貨
  • 智能機(jī)器人軟件開發(fā)智能機(jī)器人
 

快速通道fast track

近期開班時(shí)間TIME