好了,所以这段代码是从我校实践问题。我们要精神分析代码并检查答案。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