python回顾(九)——函数高级,递归函数,匿名函数
函數默認參數
默認參數概念
默認參數指函數/方法在定義時為形參賦值,對應的形參稱為默認參數
默認參數是一個參數定義期的概念,與調用無關
?
?
默認參數作用
如果參數定義默認參數,在調用函數/方法時,未對該參數進行傳值,則使用默認值作為該參數的值
?
?
默認參數基本語法
定義格式:
def 函數名(形參1 = 值1,…):
函數體? ?
……
?
調用格式一(同普通參數,無特殊):
函數名(實參) 使用實參作為形參的值,不使用默認值
?
調用格式二:
函數名()使用默認值作為形參的值
?
?
?
注意事項
1.默認參數的定義必須在位置參數的右側
?
2.默認參數在調用傳值時,按照位置參數進行對待,從左至右依次賦值,不能跳過左側的某個參數直接為后面的參數賦值
?
?
?
關鍵字參數
關鍵字參數概念
函數/方法在調用時為指定名稱的形參進行賦值,對應實參稱關鍵字參數
關鍵字參數是一個參數調用期的概念,與定義無關
?
?
關鍵字參數作用
按名稱確認實參為指定的形參賦值
?
?
關鍵字參數基本語法
定義格式(同普通參數定義,無特殊):
def 函數名(形參 ,…):
函數體 ??
???? ……
?
調用格式:
函數名( 形參名 = 實參)
?
?
注意事項
1.關鍵字參數必須出現在位置參數的后面
?
?
2.不允許使用關鍵字參數對同一個形參進行多次賦值
?
?
3.關鍵字參數既可以為位置參數賦值,也可以為默認參數賦值。通常使用關鍵字參數解決默認參數選擇性賦值問題
?
?
?
?
可變參數
可變參數概念
函數/方法在定義時,定義一個特殊的形參,用于接收調用時傳入的任意數量的實參,對應的形參稱為可變參數
可變參數是一個參數定義期與調用期都有效的概念
?
?
可變參數作用
簡化函數定義過程,定義可以接收無數個實參的形參
形參接受到的數據,無論數量多少,包裝成一個元組對象
?
?
可變參數基本語法
定義格式:
def 函數名(*args?,…):
函數體? ?
……
調用格式(同普通參數,無特殊):
函數名( 實參1,…… )
?
?
?
注意事項
1.可變參數在一個函數/方法定義中只能出現一個
?
?
2.可變參數只能出現在位置參數的后面,位置參數在左側,可變參數在右側
?
?
3.關鍵字參數只能出現在位置參數的后面,賦值時必須使用關鍵字參數傳值,否則值會被可變參數接收
?
?
4.定義函數的參數時,先定義位置參數,再定義可變參數,最后定義默認參數
?
?
?
?
字典參數
字典參數概念
函數/方法在定義時,定義一個特殊的形參,用于接收未定義直接使用的關鍵字參數,對應的形參稱為字典參數
?
?
字典參數作用
簡化函數定義過程,接收未定義直接使用的關鍵字參數
在多層級調用間進行關鍵字參數的逐級傳遞
未定義的關鍵字參數,無論數量多少,接收后包裝成一個字典對象
?
?
字典參數基本語法
定義格式:
def 函數名(**kwargs?,…):
函數體 ??
???? ……
?
調用格式:
函數名( 未定義的變量名1 =?實參1,未定義的變量名2 =?實參2,…… )
?
?
?
注意事項
1.字典參數在一個函數/方法定義中只能出現一個
?
?
2.定義函數的參數時,先定義位置參數,再定義可變參數,然后定義默認參數,最后定義字典參數
?
?
?
其他
所有的容器都支持解包操作,格式:*容器變量名
?
?
?
遞歸函數
遞歸函數概念
函數/方法在執行過程中出現了對自身函數/方法的調用,稱該過程為遞歸調用,稱這樣的函數為遞歸函數。
?
?
遞歸函數基本語法
同普通函數
?
?
遞歸函數定義要求
1.函數體中具有對自身函數的調用
2.函數體中具有明確的函數執行結束判定條件
?
?
遞歸函數調用要求
Python語言中函數調用最大層級為1000層,超過該層級,程序將報錯(不同語言設置不同)
?
?
?
匿名函數
匿名函數概念
匿名函數即沒有名稱的函數,在python語言中,匿名函數是使用lambda關鍵字定義的一個特殊表達式,也稱為lambda表達式
?
?
匿名函數基本語法
格式一:
定義: 函數名?=?lambda 形參 :?返回值
調用: 結果 = 函數名(實參)
?
?
格式二:
定義并調用: 結果 = (lambda 形參 : 返回值)(實參)
?
?
?
匿名函數特殊語法
無參格式: 結果 = (lambda?:返回值)()
?
?
多返回值格式: 無,可使用數據存儲模型返回多個數據
?
無返回值格式: 無,必須有具體值或結果為None
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
轉載于:https://www.cnblogs.com/sickle/p/10116272.html
總結
以上是生活随笔為你收集整理的python回顾(九)——函数高级,递归函数,匿名函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于haproxy的重定向
- 下一篇: python_base_while循环、