從前有座山,山上有座廟,廟裡有個老和尚,老和尚再給小和尚講故事:從前有座山,山上有座廟...
這其實就是乙個遞迴的例子,只不過這是只遞不歸,,
再比如這段**:
def呼叫story() 會不斷地執行裡面的**,不斷又呼叫story(),我們都知道當呼叫函式的時候,會開闢乙個記憶體空間,但是這段**,不斷的呼叫story()而且最外層的呼叫還沒有被釋放,記憶體一直沒被占用,一直被開闢空間,python設定了遞迴呼叫的最大深度是998,所以這段**執行之後會報錯:story():
print("
從前有座山")
story()
story()
就是遞迴錯誤,超過了遞迴的最大深度~
比如下面這個例子:
問題分析,一次次往下-----遞;結果一次次向上傳遞---歸
轉化為**:
def執行結果:age(n):
if n==4:
return 40
else
:
return age(n+1)+2
print(age(1))
分析過程:
首先你要明白age()這個函式是有返回值的!!
當你呼叫age(1)時,執行 return age(2)+2 -----》然後你要去執行 age(2): return age(3)+2-----》age(3):return age(4)+2-----》age(4):return 40
然後將最後一層函式返回的結果一層層往上傳: age(4)拿到返回值40-----》放在呼叫它age(4)的位置 就是age(3)=40+2 所以age(3)的返回值 42----》,age(2)的返回值局勢42+2=44 ----》age(1)的返回值就是44+2=46
最後返回給函式呼叫age(1)的位置,列印該結果~
day17學習筆記(物件導向)
1 類屬性 定義在類中的變數 類屬性的值不會因為物件的不同而不同 2 物件屬性 通過 self.屬性名 值 定義在 init 函式中的屬性 物件屬性的值會因為物件不同而不同 物件.屬性 獲取物件指定屬性的值 getattr 物件,屬性名 獲取物件指定屬性的值 getattr 物件,屬性名,預設值 獲...
力扣學習筆記day17
編寫乙個函式,其作用是將輸入的字串反轉過來。輸入字串以字元陣列 char 的形式給出。不要給另外的陣列分配額外的空間,你必須原地修改輸入陣列 使用 o 1 的額外空間解決這一問題。你可以假設陣列中的所有字元都是 ascii 碼表中的可列印字元。eg 輸入 h e l l o 輸出 o l l e h...
python學習day17 遞迴函式
遞迴函式 def age n if n 4 return 40 elif n 0 and n 4 return age n 1 2 print age 1 46 只要寫遞迴函式,必須要有結束條件。二分法查詢 l 2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55...