python调用函数内部的函数
问题描述:
我是CS的初学者,我一直在努力通过自己的Python书。python调用函数内部的函数
我目前在递归,但我有点卡住了。
该练习要求我编写一个名为do_n的函数,该函数将一个函数对象和一个数字n作为参数,并将该函数调用n次。
这是我的代码
def countdown(n):
if n<= 0:
print 'Blastoff'
return
else:
print n
countdown(n-1)
def do_n(f(n), x):
if x<=0:
return
else:
f(n)
do_n(f, x-1)
do_n(countdown(3), 3)
当我这样做,有因为在高清do_n无效语法错误(F(N),X)。如果将其更改为
3210由于未在else语句中定义n,因此存在错误。
我想弄清楚如何使这项工作..谢谢你们!
答
你几乎与你的第二个例子。它需要函数f和最大数x。 n不存在,因为你还没有编写循环来为n生成值。原来蟒蛇有该
def do_n(f, x):
for n in range(x):
f(n)
现在do_n需要一个函数对象f和计数X一个内置的,然后调用函数count次。注意f
(函数对象)和f(n)
(调用f的值为n的结果)之间的差异。当你想打电话do_n,你做这样的:
do_n(countdown, 3)
不喜欢
do_n(countdown(3), 3) # badness
这最后一个电话倒计时,然后用它的结果调用do_n。
答
DEF print_n(S,N):
if n<=0:
return
else:
print s
print_n(s,n-1)
DEF do_n(F,S,N,x):
if x<=0:
return
else:
f(s,n)
do_n(f,s,n,x-1)
do_n(print_n, '你好',2,2)
缩进问题。修理它。 – user2864740 2014-09-10 23:35:07
我认为你在发布代码示例时使用了选项卡。当您开始使用python而不是制表符使用4个空格缩进时,生活变得更加容易(请参阅关于如何配置您的编辑器)。它是我们处理python缩进疯狂的标准方式。 – tdelaney 2014-09-11 00:41:01