函式定義:
1、減少重複**
2、保持一致性
3、容易擴充套件
函式的返回值:
1、如果沒有return,即沒有返回值,則返回值為none
2、返回乙個值,返回值的型別與返回值一致
3、如果有多個返回值,則返回的型別為乙個元組
函式例子:
def test(x,y): #如果這裡有寫引數,則呼叫的時候必須傳入引數,否則會報錯
print(x)
print(y)
呼叫: test(1,2) #位置引數呼叫,寫入的值與形參一一對應
test(x =1,y=2)#關鍵字引數呼叫,與形參的順序無關
!!!!注:關鍵引數不能寫到位置引數前面
呼叫函式的時候,形參是必須傳值的,但是預設引數為非必傳,如果不傳值,則為預設值,傳值,則為傳入的值
不固定引數:
def test(*ar**):
print(ar**)
這樣的寫法可以傳入多個引數,呼叫例如:test(1,2,3,4)或者test([1,2,3,4]),返回的結果為(1,2,3,4)
不固定引數也可以跟位置引數相結合,例子如下:
def test(x,*ar**):
print(x)
print(ar**)
不固定關鍵字引數:
def test(kwar**s):
print(kwar**s)
這樣的寫法可以傳入多個關鍵字引數,呼叫例如:test(name = 『sum』,age=『18』,***=『man』)或者test(),返回的結果為:
注意: *ar**:把n個引數轉換成元組的方式
**kwar**:把n個關鍵引數轉換成字典的方式
!!!引數組要放到引數的最後!!!
函式中是可以修改全域性變數的,只需加:global school 但是一般不要用,這樣會導致全域性變數會隨著函式的呼叫而變化
全域性變數:全域性變數中除了字串與整數不能在區域性變數中修改,而列表(list)、字典(dict)是可以修改的
遞迴最多為999層,到了999程式會自動關閉
遞迴的含義:
1、遞迴必須有明確的結束條件
2、每一次遞迴的時候,問題規模比上次遞迴應該都是逐次減少的
3、效率不高、容易棧溢位
def add(a,b,f): #其中abs為取絕對值
print f(a)+f(b)
res = add(3,-6,abs)
print(res)
結果為:9
Python函式 高階函式 遞迴函式
1.遞迴函式 1.1體現 函式a內部,繼續呼叫函式a 概念 傳遞 回歸 1.2注意事項 遞迴函式一定是有傳遞有回歸的。1.3案例 求乙個數值的階乘 階乘 1 n的階乘就是從1乘到9 可以使用迴圈來解決 temp 1 for i in range 1,10 temp temp i print temp...
python 函式4(遞迴 高階函式)
python 函式4 遞迴 高階函式 遞迴 在函式內部,可以呼叫其他函式。如果乙個函式在內部呼叫自身本身,這個函式就是遞迴函式。遞迴特性 1.遞迴必須有乙個明確的結束條件 2.每次進入更深一層遞迴時,問題規模相比上次遞迴都應有所減少 3.遞迴效率不高,遞迴層次過多會導致棧溢位 在計算機中,函式呼叫是...
高階函式和遞迴函式
1.高階函式 1 函式名可以進行賦值 def f args print args f 1,2,3 1,2,3 f 1,2,3 1,2,3 或 def ft kwargs print kwargs ft info ft 2 函式名可以作為函式引數,還可以作為函式的返回值 def f n return ...