Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 重复函数的递归;x";时代_Python_Recursion - Fatal编程技术网

Python 重复函数的递归;x";时代

Python 重复函数的递归;x";时代,python,recursion,Python,Recursion,我需要通过递归多次重复函数“x”。我可以这样做,但输出需要为每一个结转 num是要调用的次数 def增量(n): 打印(n+1) 返回n+1 def foo(fn,num): def op(n): fn(n) 打印(个) 如果(数值>0): foo(fn,num-1) 返回操作 f=foo(增量,3) f(5) 现在我得到6分。预期结果是6,7,8,这里有一种方法: def incr(n): print(n+1) return n+1 def foo(fn, num):

我需要通过递归多次重复函数“x”。我可以这样做,但输出需要为每一个结转

num是要调用的次数

def增量(n):
打印(n+1)
返回n+1
def foo(fn,num):
def op(n):
fn(n)
打印(个)
如果(数值>0):
foo(fn,num-1)
返回操作
f=foo(增量,3)
f(5)

现在我得到6分。预期结果是6,7,8,这里有一种方法:

def incr(n):
    print(n+1)
    return n+1

def foo(fn, num):
    def op(n):
        if num > 0:
            n = fn(n)
            foo(fn, num-1)(n)
    return op

f = foo(incr, 3)
f(5)

递归函数应自行调用,有关详细信息,请参阅

我还添加了一个跟踪最终结果的参数

def incr(n, num):
  if (n != num):
    print(n + 1)
    return incr(n + 1, num)

def foo(fn, num):
  def op(n):
    fn(n, n + num)
  return op

f = foo(incr, 3)
f(5)

我不确定这是否最佳,你到底想要什么?你想用你的功能实现什么?这将返回3,2,1,0,6。不仅6.what is
6,7,8
tuple
f()
(即
op()
)不是递归函数,它只调用一次
fn
,仅此而已
foo()
是一个递归函数,我希望它在返回之前显示3,2,1。感谢您的及时回复!