為什么要先倒數然后再倒數?不想改變它,只想了解它。
def bounce (n)。
if n > 0:
print(n)
bounce(n-1)
print(n)
bounce(4)
結果:
4
3
2
1 1
0 0
1
2 2
3 3
4 4
uj5u.com熱心網友回復:
它是往下數的,因為你列印了引數(如果是正數),然后用相同的值減去1進行遞回呼叫。每個遞回呼叫也列印他們的輸入并進行遞回呼叫,直到你到了0。
由于在退出每個遞回呼叫時發生的最后一個列印陳述句,它的計數是向上的。
uj5u.com熱心網友回復:
在第一個print(n)和第二個print(n)之間,所有的小數字將被遞回處理。 只有當n為零時,該函式才會列印一行,并在不呼叫自己的情況下回傳。
因此,如果我們按照遞回深度進行分解,我們會得到:
bounce(4)
|print(4) 4 1st print(n)
|bounce(3)
|print(3) 3 1st print(n)
2 |bounce(2)
| |print(2) 2 1st print(n)
| |bounce(1)
| |print(1) 1 1st print(n)
| | |bounce(0)
| | |print(0) 0 2nd print(n)
| | |print(1) 1 2nd print(n)
| |print(2) 2 第二print(n)
|print(3) 3 第二print(n)
|print(4) 4 第二print(n)
一般來說,你在遞回函式呼叫自身之前所做的事情是按順序進行的,而你在之后所做的事情是按相反的順序進行的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/319284.html
標籤:
