原文:https://www.cnblogs.com/Fantinai/p/7806356.html
在函數內調用當前函數本身的函數就是遞歸函數
下面是一個遞歸函數的實例:
第一次接觸遞歸函數的人,都會被它調用本身而搞得暈頭轉向,而且看上面的函數調用,得到的結果會是:
3
2
1
0
爲什麼會得出上面的結果呢?因爲都把調用函數本身之後的代碼給忘記了,就是else之後的python 代碼。
實際此遞歸函數輸出的是以下結果:
0
1
2
3
相信大家看到這裏都有點蒙,小編也一樣,我第一次看到這個遞歸函數時,只能理解到第一個結果。那是因爲,大部分人在做事情的時候,中斷第一件事,被安排去做第二件事的時候,就會把第一件事後續的事情給忘記,如果在做第二件事的時候,又被中斷,被安排去做第三件事,就會把第一件、第二件要做的後續的事情給忘記......,這就是不理解遞歸函數的原因。
下面我把此遞歸函數做了一個分解,希望能夠幫到大家。
詳解遞歸函數,當調用遞歸函數digui(3)時,執行過程如下:
在調用函數本身時,它之後的代碼並沒有結束,而是在等待條件爲False 時,再接着執行之後的代碼,同一個顏色的print()語句等待對應顏色的函數