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

2022-09-12 23:33:33 字數 1146 閱讀 4612

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

遞迴

在函式內部,可以呼叫其他函式。如果乙個函式在內部呼叫自身本身,這個函式就是遞迴函式。

遞迴特性:

1. 遞迴必須有乙個明確的結束條件

2. 每次進入更深一層遞迴時,問題規模相比上次遞迴都應有所減少

3. 遞迴效率不高,遞迴層次過多會導致棧溢位(在計算機中,函式呼叫是通過棧(stack)這種資料結構實現的,

每當進入乙個函式呼叫,棧就會加一層棧幀,每當函式返回,棧就會減一層棧幀。由於棧的大小不是無限的,

所以,遞迴呼叫的次數過多,會導致棧溢位)

def

sum1(n):

print

(n)

return sum1(n+1)

sum1(0)

列印結果

0.....

995996traceback (most recent call last):

file

"d:/users/administrator/pycharmprojects/untitled/11-10/函式-遞迴.py

", line 6, in

print

(n)recursionerror: maximum recursion depth exceeded

while calling a python object

應用:

def

cushu(n):

print

(n)

if int(n/2)>0:

return cushu(int(n/2))

print("

>>>

",n)

cushu(10)

列印結果105

21>>> 1

高階函式

變數可以指向函式,函式的引數能接收變數,那麼乙個函式就可以接收另乙個函式作為引數,這種函式就稱之為高階函式。

def add(a,b,f):

return f(a)+f(b)

res =add(3,-9

,abs)

print(res)

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 函式 遞迴 高階函式相關操作

函式定義 1 減少重複 2 保持一致性 3 容易擴充套件 函式的返回值 1 如果沒有return,即沒有返回值,則返回值為none 2 返回乙個值,返回值的型別與返回值一致 3 如果有多個返回值,則返回的型別為乙個元組 函式例子 def test x,y 如果這裡有寫引數,則呼叫的時候必須傳入引數,...

高階函式和遞迴函式

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