好了,所以這段代碼是從我校實踐問題。我們要精神分析代碼並檢查答案。Python函數返回迴路
當我第一次解析它時,我得到了4.我複製了代碼,並通過IDLE運行它,得到了8.我運行了調試器,看到else:return正在循環if else語句,直到x == 0
,然後它返回1.
我不知道如何返回1出山8
def foo(x=5):
if x == 0:
return 1
else:
return 2*foo(x-1)
print(foo(3))
我明白,這是調用foo(x-1)
功能foo(x=5)
這使得它檢查是否還有一次又一次,直到x == 0
那麼它裏面返回1.如何返回1最終打印8?
重複的http://stackoverflow.com/questions/32653496/python-function-return-loop? – wap26
對於_x_的非負整數值,「foo」是「2到_x_ power」的遞歸計算。 (如果它將'foo(x-1)'乘以'x'而不是'2',它會計算出「_x_ factorial」)。 –
@ wap26您提供的鏈接似乎是我的問題 – proxenmity