我目前正在学习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)
我认为这是一个迭代函数,但在做了一些研究之后,我不确定。我需要具体了解,因为下一个练习要求我编写一个递归/迭代函数的版本(取决于我的第一个函数是什么)。
发布于 2018-08-23 21:15:47
所以问题是“写一个迭代和递归版本的和”。太棒了。
不要使用内置求和方法,而要编写自己的方法。我将给出迭代,您应该知道递归:
def my_iterative_sum(a):
res = 0
for n in a:
res += a
return res
这是迭代的,因为它对所有的值进行迭代并对它们进行总结。
编辑:很明显,你的帖子是迭代的。您是从函数f
内部调用函数f
吗?不是的。
也许读一读递归是什么会有帮助的。https://www.google.com/search?q=recursion
发布于 2018-08-23 21:22:05
递归函数调用自身,而不到达out poin,而迭代函数通过范围内的迭代更新计算值。
发布于 2019-02-10 15:28:54
对于那些仍然希望看到递归函数和迭代函数之间的区别的人。
迭代法
def iterative_sum(n):
result = 1
for i in range(2,n+1):
result *= i
return result
print(iterative_sum(5))
迭代是指循环重复执行,直到控制条件变为false为止。
递归
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
https://stackoverflow.com/questions/51994148
复制相似问题