Python3函式中如何理解遞迴

2022-10-11 01:00:13 字數 821 閱讀 2420

遞迴是一種直接或間接呼叫自己的函式。

例如:

def a():

a() # 直接呼叫自身,無限迴圈

def b(func):

func() # 傳入乙個函式名,呼叫傳入的函式

def c():

b(c) # 間接呼叫自身,呼叫b函式,b函式中根據傳人引數呼叫c函式,無限迴圈

a()c()

此時無聊執行a()或者c()都會丟擲達到最大遞迴深度異常

...

recursionerror: maximum recursion depth exceeded

即python直譯器中設定有最大遞迴次數來防止遞迴形成的無限迴圈。

無限迴圈不是我們的目的,所以我們在遞迴中要設計遞迴出口以及使執行趨向遞迴出口

例如:

def print_num(i):

print(i, end=' ')

if i < 100: # 當條件不滿足i<100時則結束遞迴

print_num(i+1) # i逐漸增大以趨於結束

print_num(0)

遞迴常用於使用倒推的方式來簡化問題

例如求n的階乘,已知1的階乘是1,之後n的階乘是上乙個數的階乘 * 當前數,即

def fn(n):

if n > 1:

return n * fn(n-1)

return 1

print(fn(10))

python3中內建函式

完整的內建函式及其說明參考官方文件 完整的內建函式及其說明參考官方文件 1 通用內建函式 id 函式 檢視物件的記憶體位址 help 函式 檢視幫助資訊 type 函式 檢視物件的型別 不會認為子類是一種父類型別 isinstance 函式 檢視物件型別 會認為子類是一種父類型別 dir 函式 檢視...

Python3深入理解super 函式

深入理解super 函式在類的繼承中,如果重定義某個方法,該方法會覆蓋父類的同名方法,但有時,我們希望能同時實現父類的功能,這時,我們就需要呼叫父類的方法了,可通過使用super 函式來實現。super type object or type 引數 classa def init self prin...

python3函式語法 Python3

python3 degrees 函式 描述degrees 將弧度轉換為角度。語法以下是 degrees 方法的語法 import math math.degrees x 注意 degrees 是不能直接訪問的,需要匯入 math 模組,然後通過 math 靜態物件呼叫該方法。引數x 乙個數值。返回值...