递归与迭代函数Python

时间:2018-08-23 20:56:45

标签: python recursion iteration python-2.x

我目前正在学习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)

我认为这是一个迭代函数,但是经过一些研究后我不确定。我需要特别知道,因为下一个练习要求我编写一个递归/迭代的函数版本(取决于我的第一个函数是什么)。

3 个答案:

答案 0 :(得分:1)

所以问题是“编写sum的迭代和递归版本”。很好。

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

      return noLastArg(std::make_index_sequence<sizeof...(T)+1u>{}, 
                       std::make_tuple(obj, last<Obj, T...>{}, field...));

这是迭代的,因为它对所有值进行迭代并将其求和。

编辑:很明显,您的帖子是迭代的。您是从函数def my_iterative_sum(a): res = 0 for n in a: res += a return res 中调用函数f吗?不。

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

答案 1 :(得分:1)

递归函数在未达到出点时调用自身,而迭代函数通过范围内的迭代更新计算值。

答案 2 :(得分:1)

对于那些仍然希望了解递归和迭代函数之间的区别的人。

迭代

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

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

此链接对其进行了更好的解释 https://techdifferences.com/difference-between-recursion-and-iteration-2.html

相关问题