迭代器的Python递归

时间:2015-07-12 19:30:04

标签: python recursion

我对python递归函数有疑问。

我知道函数可以很容易地被循环/迭代替换,但你是否也可以在递归函数中使用for / while语句并且它仍然是递归的?

3 个答案:

答案 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)