我对python递归函数有疑问。
我知道函数可以很容易地被循环/迭代替换,但你是否也可以在递归函数中使用for / while语句并且它仍然是递归的?
答案 0 :(得分:2)
是的,你可以。递归仅仅意味着函数是根据自身定义的。它对如何定义函数没有任何其他限制。
考虑例如:
def myLen(l):
for i in range(3):
print "Hello"
return 1 + myLen(l[1:]) if l else 0
这是一个递归函数,尽管它使用for
循环。
答案 1 :(得分:1)
是的,这是可能的:
def yop(x):
result = 0
for i in range(0, x):
result += yop(i-1)
return result
尽管如此,我不确定这样一个微不足道的答案会对你遇到的问题有所帮助(除非你只是好奇这是否可能)。如果您仍有疑问,发布代码示例或您尝试解决的问题的更详细说明可能会有所帮助。
希望这有点帮助!
答案 2 :(得分:0)
是的,有可能是这样,
def fact(n):
r=1
for i in range(2,n+1):
r*=i
return r
print fact(3)