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)文章
對(duì)python中的xlsxwriter庫(kù)簡(jiǎn)單分析
今天小編就為大家分享一篇對(duì)python中的xlsxwriter庫(kù)簡(jiǎn)單分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05使用Python實(shí)現(xiàn)為PDF文件添加圖章
在日常工作中,我們經(jīng)常需要給PDF文檔添加一些標(biāo)識(shí),比如公司的圖章或水印圖章,所以本文就來(lái)為大家詳細(xì)介紹一下如何使用Python實(shí)現(xiàn)為PDF文件添加圖章,需要的可以參考下2023-11-11Python使用collections模塊實(shí)現(xiàn)擴(kuò)展數(shù)據(jù)類
Python?標(biāo)準(zhǔn)庫(kù)提供了一個(gè)?collections?模塊,里面提供了很多的數(shù)據(jù)類,在工作中使用這些類能夠簡(jiǎn)化我們的開(kāi)發(fā),本文就來(lái)看看collections是如何實(shí)現(xiàn)擴(kuò)展數(shù)據(jù)類的吧2023-06-06Python中的random函數(shù)實(shí)例詳解
random模塊提供生成偽隨機(jī)數(shù)的函數(shù),在使用時(shí)需要導(dǎo)入random模塊,這篇文章主要介紹了Python中的random函數(shù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02Pytorch實(shí)現(xiàn)將模型的所有參數(shù)的梯度清0
這篇文章主要介紹了Pytorch實(shí)現(xiàn)將模型的所有參數(shù)的梯度清0,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06Python中文糾錯(cuò)的簡(jiǎn)單實(shí)現(xiàn)
這篇文章主要是用 Python 實(shí)現(xiàn)了簡(jiǎn)單的中文分詞的同音字糾錯(cuò),目前的案例中只允許錯(cuò)一個(gè)字,感興趣的小伙伴們可以參考一下2021-07-07