在函数内部调用函数,等等。。。在python中为n次
我目前正在python中开发mandelbrot集。 现在我想做一个函数,它调用函数内部的函数n次(以此类推)。 像 第1圈:f(x) 第二圈:f(f(x)) 第三个循环:f(f(f(x))) 等等 现在我做了这个代码在函数内部调用函数,等等。。。在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 '))))。
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))