python函數(shù)和python匿名函數(shù)lambda詳解
更新時間:2022年09月08日 10:41:21 作者:愛測試的高胖胖
這篇文章主要介紹了python函數(shù)和python匿名函數(shù)lambda,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
1. python函數(shù)
1.1 函數(shù)的作用
- 函數(shù)是組織好的,可重復使用的,用來實現(xiàn)單一或相關(guān)聯(lián)功能的代碼段
- 函數(shù)能提高應(yīng)用的模塊性和代碼的重復利用率
- 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ù)的注意事項:
縮進:python 是通過嚴格的縮進來判斷代碼塊兒
- 函數(shù)體和注釋相對于 def 關(guān)鍵字必須保持一定的縮進,一般都是 4 個空格
- pycharm 自動格式化快捷鍵:
ctrl+alt+L
定義空函數(shù)
- 使用
pass
語句占位- 寫函數(shù)注釋 comments、
1.3 函數(shù)調(diào)用
- function_name:函數(shù)名稱
- parameter_value:可選,指定各個參數(shù)的值
function_name([parameter_value])
1.4 函數(shù)的參數(shù)
1.4.1 參數(shù)的傳遞
- 形式參數(shù):定義函數(shù)時,函數(shù)名稱后面括號中的參數(shù)
- 實際參數(shù):調(diào)用函數(shù)時,函數(shù)名稱后面括號中的參數(shù)
# a, b, c 為形式參數(shù) def demo_func(a, b, c): print(a, b, c) # 1, 2, 3 為實際參數(shù) demo_func(1, 2, 3)
1.4.2 參數(shù)類型
1.4.2.1 位置參數(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ù)也稱為不定長參數(shù)
- 傳入函數(shù)中實際參數(shù)可以是任意多個
- 常見形式
*args
**kwargs
1.4.2.3.1 *args
- 接收任意多個實際參數(shù),并將其放到一個元組中
- 使用已經(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
- 接收任意多個類似關(guān)鍵字參數(shù)一樣顯式賦值的實際參數(shù),并將其放到一個字典中
- 使用已經(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è)置默認值
- 定義函數(shù)時可以指定形式參數(shù)的默認值
- 指定默認值的形式參數(shù)必須放在所有參數(shù)的最后,否則會產(chǎn)生語法錯誤
param=default_value
:可選,指定參數(shù)并且為該參數(shù)設(shè)置默認值為 default_value- 設(shè)置默認值必須要使用不可用對象,可變對象不可以用,如:列表,字典。
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表達式
2.1 匿名函數(shù)
- 沒有名字的函數(shù)
- 用 lambda 表達式創(chuàng)建匿名函數(shù)
2.2 使用場景
- 需要一個函數(shù),但是又不想費神去命名這個函數(shù)
- 通常在這個函數(shù)只使用一次的場景下
- 可以指定短小的回調(diào)函數(shù)
2.3 語法
- result:調(diào)用 lambda 表達式
- [arg1 [, arg2, …. , argn]]:可選,指定要傳遞的參數(shù)列表
- expression:必選,指定一個實現(xiàn)具體功能的表達式
result = lambda [arg1 [, arg2, .... , argn]]: expression
2.4 實例
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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用collections模塊實現(xiàn)擴展數(shù)據(jù)類
Python?標準庫提供了一個?collections?模塊,里面提供了很多的數(shù)據(jù)類,在工作中使用這些類能夠簡化我們的開發(fā),本文就來看看collections是如何實現(xiàn)擴展數(shù)據(jù)類的吧2023-06-06Pytorch實現(xiàn)將模型的所有參數(shù)的梯度清0
這篇文章主要介紹了Pytorch實現(xiàn)將模型的所有參數(shù)的梯度清0,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06