這個問題在這里已經有了答案: 簡單英語的遞回函式[重復] 6個答案 昨天關門。
我正在做一些練習來訓練自己,并且練習要求我做一個計算分形的程式,非常簡單,我在大約 1-2 分鐘內完成并且它可以作業,但是看看他的解決方案它回傳 x 乘以函式本身?這是怎么運行的?我知道這可能是一個愚蠢的問題,但我認為它可能有用。
def fract(x):
if x == 0:
return 1
return x * fract(x - 1)
print(fract(int(input())))
uj5u.com熱心網友回復:
這是發生的事情的演練。
首先,呼叫 fract(int(input()))。輸入法從用戶那里獲得回應并將其決議為 int。然后在該 int 上呼叫 fract。
假設我們輸入 3。所以我們的 print 陳述句計算結果為 fract(3)。
fract(3) 回傳 3 * fract(2) fract(2) 被呼叫并回傳 2 * fract(1) fract(1) 被呼叫并回傳 1
所以把它放在一起,用函式呼叫代替它們回傳的結果,我們得到 fract(3) 回傳 3 * (2 * (1))。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/444666.html
上一篇:我正在創建python的游戲問題
