递归中的条件问题
def a(x):if x==1:
return 1
else:
return x*a(x-1)
a(5)得出结果时120
def a(x):
if x==3:
return 3
else:
return x*a(x-1)
这时a(5)得出结果时60
这个时候 x=2 和x=1不再计算?
为什么只计算到if里边的数值
进了if之后,就return了,自然不会再调用a(x-1)函数 对于调用一个普通的 Python 函数,一般是从函数的第一行代码开始执行,结束于 return 语句、异常或者函数所有语句执行完毕
第一个,结束于 return 1
相当于 a(5)*a(4)*a(3)*a(2)*1
第二个,结束于 return 3
相当于 a(5)*a(4)*3
页:
[1]