递归与迭代函数 Python

Recursive vs Iterative Functions Python

我目前正在学习 Python 并且想了解一下迭代函数和递归函数之间的区别。我知道递归函数会调用自己,但我不确定如何定义迭代函数。

比如我写了这段代码

random_list = ['6', 'hello', '10', 'find', '7']

def sum_digits(string):
    return sum(int(x) for x in string if x.isdigit())

print "Digits:", sum_digits(random_list)

我认为这是一个迭代函数,但在做了一些研究后我不确定。我需要具体知道,因为下一个练习要求我编写函数的一个版本 recursive/iterative(取决于我的第一个函数是什么)。

所以问题是"write an iterative and recursive version of sum"。太好了。

不要使用内置的求和方法,而是自己编写。我给你迭代,你应该弄清楚递归:

def my_iterative_sum(a):
    res = 0
    for n in a:
        res += a
    return res

这是迭代,因为它迭代所有值并将它们相加。

编辑:显然您的 post 是迭代的。您是从函数 f 中调用函数 f 吗?没有。

也许阅读什么是递归会对此有所帮助。 https://www.google.com/search?q=recursion

递归函数在没有到达输出点时调用自身而迭代函数通过在范围内迭代更新计算值

致那些可能仍想了解递归函数和迭代函数之间区别的人。

迭代

def iterative_sum(n):
    result = 1
    for i in range(2,n+1):
        result *= i
    return result
print(iterative_sum(5))

迭代是循环重复执行直到控制条件变为假

递归

def recursive_sum(n):
    if n == 1:
        return 1
    else:
        return n * recursive_sum(n-1)
print(recursive_sum(5))

递归函数是指函数调用自身

这个 link 解释得更好 https://techdifferences.com/difference-between-recursion-and-iteration-2.html