Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.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中为n次_Python - Fatal编程技术网

在函数内部调用函数,等等。。。在python中为n次

在函数内部调用函数,等等。。。在python中为n次,python,Python,我目前正在python中开发mandelbrot集。 现在我想做一个函数,它调用函数内部的函数n次(以此类推)。 像 第1圈:f(x) 第二圈:f(f(x)) 第三个循环:f(f(f(x))) 等等 现在我做了这个代码 def f(x): return x**2 def g(x,n): if n == 0: return f(x) else: f(g(x,n-1)) g(2,5) 现在我期望得到结果f(f(f(f(2 '))))。

我目前正在python中开发mandelbrot集。 现在我想做一个函数,它调用函数内部的函数n次(以此类推)。 像

第1圈:f(x)

第二圈:f(f(x))

第三个循环:f(f(f(x)))

等等

现在我做了这个代码

def f(x):
    return x**2

def g(x,n): 
    if n == 0:
        return f(x)
    else:
        f(g(x,n-1))

g(2,5)
现在我期望得到结果f(f(f(f(2 '))))。 它有一个错误,“Pow:‘NoneType’和‘int’”


我怎样才能修好它?这是正确的方法吗?

您可以使用递归方法:

def g(x,n):
    if n == 1 :
         return f(x)
    elif n > 1:
         return f(g(x,n-1))
或者像这样:

for i in range(0,n):
    x = f(x)
print x 
Else分支缺少
return
语句。所以函数不会返回到那个里,而是继续到函数体的末尾。这里也没有return语句,所以函数不返回任何语句

这就是为什么会出现错误


只需将
return
添加到else分支即可解决此问题。

您是指递归吗?显示您尝试过的代码、存在的问题以及预期的输出。您好,您错过了我的答案,请检查我的答案。你的边界不是很对,我想,应该是n==1,如果我给你g(2,1),那么你的函数输出是f(f(2)),这是不正确的。
for i in range(n):
    x = f(x)
print x
def g(x,n): 
    if n == 0:
        return f(x)
    else:
        f(g(x,n-1))