首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >递归与迭代函数Python

递归与迭代函数Python
EN

Stack Overflow用户
提问于 2018-08-23 20:56:44
回答 3查看 7.3K关注 0票数 0

我目前正在学习Python,并想要澄清迭代函数和递归函数之间的区别。我理解递归函数自称为递归函数,但我不太清楚如何定义迭代函数。

例如,我编写了以下代码

代码语言:javascript
运行
复制
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)

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-08-23 21:15:47

所以问题是“写一个迭代和递归版本的和”。太棒了。

不要使用内置求和方法,而要编写自己的方法。我将给出迭代,您应该知道递归:

代码语言:javascript
运行
复制
def my_iterative_sum(a):
    res = 0
    for n in a:
        res += a
    return res

这是迭代的,因为它对所有的值进行迭代并对它们进行总结。

编辑:很明显,你的帖子是迭代的。您是从函数f内部调用函数f吗?不是的。

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

票数 1
EN

Stack Overflow用户

发布于 2018-08-23 21:22:05

递归函数调用自身,而不到达out poin,而迭代函数通过范围内的迭代更新计算值。

票数 2
EN

Stack Overflow用户

发布于 2019-02-10 15:28:54

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

迭代法

代码语言:javascript
运行
复制
def iterative_sum(n):
    result = 1
    for i in range(2,n+1):
        result *= i
    return result
print(iterative_sum(5))

迭代是指循环重复执行,直到控制条件变为false为止。

递归

代码语言:javascript
运行
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51994148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档