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