python函數(shù)和python匿名函數(shù)lambda詳解
1. python函數(shù)
1.1 函數(shù)的作用
- 函數(shù)是組織好的,可重復(fù)使用的,用來(lái)實(shí)現(xiàn)單一或相關(guān)聯(lián)功能的代碼段
- 函數(shù)能提高應(yīng)用的模塊性和代碼的重復(fù)利用率
- python 內(nèi)置函數(shù):https://docs.python.org/zh-cn/3.10/library/functions.html
1.2 函數(shù)定義
- def:函數(shù)定義關(guān)鍵詞
- function_name:函數(shù)名稱
- ():參數(shù)列表放置的位置,可以為空
- parameter_list:可選,指定向函數(shù)中傳遞的參數(shù)
- comments:可選,為函數(shù)指定注釋
- function_body:可選,指定函數(shù)體
def function_name([parameter_list]):
[''' comments ''']
[function_body]
定義函數(shù)的注意事項(xiàng):
縮進(jìn):python 是通過(guò)嚴(yán)格的縮進(jìn)來(lái)判斷代碼塊兒
- 函數(shù)體和注釋相對(duì)于 def 關(guān)鍵字必須保持一定的縮進(jìn),一般都是 4 個(gè)空格
- pycharm 自動(dòng)格式化快捷鍵:
ctrl+alt+L定義空函數(shù)
- 使用
pass語(yǔ)句占位- 寫(xiě)函數(shù)注釋 comments、
1.3 函數(shù)調(diào)用
- function_name:函數(shù)名稱
- parameter_value:可選,指定各個(gè)參數(shù)的值
function_name([parameter_value])
1.4 函數(shù)的參數(shù)
1.4.1 參數(shù)的傳遞
- 形式參數(shù):定義函數(shù)時(shí),函數(shù)名稱后面括號(hào)中的參數(shù)
- 實(shí)際參數(shù):調(diào)用函數(shù)時(shí),函數(shù)名稱后面括號(hào)中的參數(shù)
# a, b, c 為形式參數(shù)
def demo_func(a, b, c):
print(a, b, c)
# 1, 2, 3 為實(shí)際參數(shù)
demo_func(1, 2, 3)
1.4.2 參數(shù)類型
1.4.2.1 位置參數(shù)(必備參數(shù))
- 數(shù)量必須與定義時(shí)一致
- 位置必須與定義時(shí)一致
def demo_func(a, b, c):
print(a, b, c)
# 1 賦值給 a, 2 賦值給 b, 3 賦值給 c
demo_func(1, 2, 3)
1.4.2.2 關(guān)鍵字參數(shù)
- 使用形式參數(shù)的名字確定輸入的參數(shù)值
- 不需要與形式參數(shù)的位置完全一致
def demo_func(a, b, c):
print(a, b, c)
demo_func(a=1, b=2, c=3)
1.4.2.3可變參數(shù)
- 可變參數(shù)也稱為不定長(zhǎng)參數(shù)
- 傳入函數(shù)中實(shí)際參數(shù)可以是任意多個(gè)
- 常見(jiàn)形式
*args**kwargs
1.4.2.3.1 *args
- 接收任意多個(gè)實(shí)際參數(shù),并將其放到一個(gè)元組中
- 使用已經(jīng)存在的列表或元組作為函數(shù)的可變參數(shù),可以在列表的名稱前加
*
def print_language(*args):
print(args)
print_language("python", "java", "php", "go")
params = ["python", "java", "php", "go"]
print_language(*params)
1.4.2.3.2 **kwargs
- 接收任意多個(gè)類似關(guān)鍵字參數(shù)一樣顯式賦值的實(shí)際參數(shù),并將其放到一個(gè)字典中
- 使用已經(jīng)存在字典作為函數(shù)的可變參數(shù),可以在字典的名稱前加
**
def print_info(**kwargs):
print(kwargs)
print_info(Tom=18, Jim=20, Lily=12)
params = {'Tom':18, 'Jim':20, 'Lily':12}
print_language(**params)
1.4.5 為參數(shù)設(shè)置默認(rèn)值
- 定義函數(shù)時(shí)可以指定形式參數(shù)的默認(rèn)值
- 指定默認(rèn)值的形式參數(shù)必須放在所有參數(shù)的最后,否則會(huì)產(chǎn)生語(yǔ)法錯(cuò)誤
param=default_value:可選,指定參數(shù)并且為該參數(shù)設(shè)置默認(rèn)值為 default_value- 設(shè)置默認(rèn)值必須要使用不可用對(duì)象,可變對(duì)象不可以用,如:列表,字典。
def function_name(..., [param=default_value]):
[function_body]
1.5 函數(shù)返回值
value:可選,指定要返回的值
def function_name([parameter_list]):
[''' comments ''']
[function_body]
return [value]
2. python lambda表達(dá)式
2.1 匿名函數(shù)
- 沒(méi)有名字的函數(shù)
- 用 lambda 表達(dá)式創(chuàng)建匿名函數(shù)
2.2 使用場(chǎng)景
- 需要一個(gè)函數(shù),但是又不想費(fèi)神去命名這個(gè)函數(shù)
- 通常在這個(gè)函數(shù)只使用一次的場(chǎng)景下
- 可以指定短小的回調(diào)函數(shù)
2.3 語(yǔ)法
- result:調(diào)用 lambda 表達(dá)式
- [arg1 [, arg2, …. , argn]]:可選,指定要傳遞的參數(shù)列表
- expression:必選,指定一個(gè)實(shí)現(xiàn)具體功能的表達(dá)式
result = lambda [arg1 [, arg2, .... , argn]]: expression
2.4 實(shí)例
L=[('b',2),('a',1),('c',3),('d',4)]
# 2、利用參數(shù) cmp 排序
sorted(L, cmp=lambda x,y:cmp(x[1],y[1]))
# 結(jié)果:
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
# 3、利用參數(shù) key 排序
sorted(L, key=lambda x:x[1])
# 結(jié)果:
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]到此這篇關(guān)于python函數(shù)和python匿名函數(shù)lambda的文章就介紹到這了,更多相關(guān)python匿名函數(shù)lambda內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決python3 安裝完P(guān)ycurl在import pycurl時(shí)報(bào)錯(cuò)的問(wèn)題
今天小編就為大家分享一篇解決python3 安裝完P(guān)ycurl在import pycurl時(shí)報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
Python樹(shù)的鏡像的實(shí)現(xiàn)示例
樹(shù)的鏡像是指將樹(shù)的每個(gè)節(jié)點(diǎn)的左右子樹(shù)交換,得到一棵新的樹(shù),本文主要介紹了Python樹(shù)的鏡像的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11
Django學(xué)習(xí)筆記之為Model添加Action
這篇文章主要介紹了Django給admin添加Action,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-04-04
jupyter notebook 的工作空間設(shè)置操作
這篇文章主要介紹了jupyter notebook 的工作空間設(shè)置操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04
聯(lián)邦學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)FedAvg算法實(shí)現(xiàn)
這篇文章主要為大家介紹了聯(lián)邦學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)FedAvg算法實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Python數(shù)據(jù)結(jié)構(gòu)之樹(shù)的全面解讀
數(shù)據(jù)結(jié)構(gòu)中有很多樹(shù)的結(jié)構(gòu),其中包括二叉樹(shù)、二叉搜索樹(shù)、2-3樹(shù)、紅黑樹(shù)等等。本文中對(duì)數(shù)據(jù)結(jié)構(gòu)中常見(jiàn)的樹(shù)邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)進(jìn)行了匯總,不求嚴(yán)格精準(zhǔn),但求簡(jiǎn)單易懂2021-11-11

