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.遞迴效率不高,遞迴層次過多會導致棧溢位 在計算機中,函式呼叫是...