高階函式和遞迴函式

2021-09-30 19:09:53 字數 1220 閱讀 5865

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 n*n

print(f(2))

def foo(a,b,f):

return f(a)+f(b)

print(foo(1,2,f))

與下面一樣:

def f(n):

return n*n

print(f(2))

def foo(a,b,func):

rel = func(a)+func(b)

return rel

print(foo(1,2,f))

def f():

def ft():

return 4

return ft()

print(f())

2.遞迴函式

#階乘def fat(n):

ret=1

for i in range(1,n+1):

ret = ret*i

return ret

print(fat(5))

#遞迴函式

def fact(n):

if n==1:

return 1

return n*fact(n-1)

print(fact(5))

關於遞迴特點:

1.自己呼叫自身函式

2.有乙個結束條件

但凡是遞迴可以寫的程式迴圈都可以解決

遞迴的效率在很多時候很低

3.斐波那契序列

def fibo(n):

# before_a=0

# after_b=1

# if n <= 1 :

# return n

if n==1 or n==0 :

return n

return fibo(n-1)+fibo(n-2)

print(fibo(8))

4.內建函式

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...

Erlang高階函式 遞迴

說明 erlang 高階函式 匿名函式 有一大堆資料,不再贅述,這裡主要說以下高階函式遞迴式。高階函式遞迴用法 高階函式實現尾遞迴有兩種方式 1 將高階函式自身作為引數傳入,並在內部呼叫 2 通過fun進行類似普通函式的定義 1 作為引數傳入 參考資料 erlang匿名函式的遞迴 寫普通函式的時候函...

python 函式4(遞迴 高階函式)

python 函式4 遞迴 高階函式 遞迴 在函式內部,可以呼叫其他函式。如果乙個函式在內部呼叫自身本身,這個函式就是遞迴函式。遞迴特性 1.遞迴必須有乙個明確的結束條件 2.每次進入更深一層遞迴時,問題規模相比上次遞迴都應有所減少 3.遞迴效率不高,遞迴層次過多會導致棧溢位 在計算機中,函式呼叫是...