首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何返回Python中的每个递归函数调用?

如何返回Python中的每个递归函数调用?
EN

Stack Overflow用户
提问于 2017-09-04 00:13:56
回答 1查看 619关注 0票数 1

我可能没有使用正确的术语,但我对编程还很陌生(所以请原谅我,如果这是一个简单的搜索,我不确定我是否使用了正确的关键字)。

假设我有一个重复关系:

f(0) =2

f(x) = f(x-1) +1表示x >= 1.

现在,假设我想用Python (2.7)中的递归对这个关系进行编程,但是不只是返回f(x),我想返回一个列表: f(x),f(x-1),…,f(0)。

我可以很容易地将递归关系编程返回f(10):

代码语言:javascript
复制
def my_fun(x):
    if x == 0:
        return 2
    else:
        return 1+my_fun(x-1)

但是,对于如何在不使用for循环的情况下返回每个函数调用,我感到很困惑。

有办法这样做吗?

编辑:如果可能的话,我想避免使用for循环。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-04 00:25:31

您可以返回一个list并使用最后一个元素计算上一次调用中的值。

代码语言:javascript
复制
def my_fun(x):
    if x == 0:
        return [2]
    else:
        l = my_fun(x-1)
        l.append(l[-1] + 1) # since f(n-1) is in the last element

        return l

a = my_fun(5)

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

https://stackoverflow.com/questions/46028878

复制
相关文章

相似问题

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