2012-12-14 164 views
1

我无法用下面的代码:什么是参数的类型,这个函数做什么?

def myprogram(x): 
    if x == []: 
     return x 
    else: 
     return myprogram(x[1:]) + [ x[0] ] 

什么是参数类型(x)? 这个函数做什么?

我应该编写代码,用一个参数调用这个函数并找到返回值,但是如果不理解这里发生了什么,我不能这样做。任何帮助/反馈将不胜感激。

+0

http://docs.python.org/2/tutorial/introduction.html关于那一页将帮助你找出一些语法的一半好。 – sean

+5

解决这个问题的一个好方法是运行这个函数,然后尝试使用'x' – Stuart

回答

7

由于这显然是家庭作业,我会限制我的答案提示。

我应该写调用这个函数

很显然,该函数需要一个代码列表。我留给你找出其余的。

如果您不确定如何继续,您可以尝试用各种列表调用它以查看它返回的内容。但是,最终你必须阅读并理解源代码,以确定函数的功能。

0

这是一个递归函数,它继续自称,直到终止条件停止它

例如,如果您运行此代码:

def factorial(n): 
    if n == 0: 
     return 1 
    else: 
     return n * factorial(n -1) 

你会想到,如果你调用将返回factorial(5)

就如何使他们在这里另一篇文章:How can I build a recursive function in python?

+0

@NPE和@ yentup的不同值调用函数。谢谢你们的帮助。我真的想通了,并得到它运行:def myTest(para): if para == []: return para else: return myTest(para [1:])+ [para [0]] lis = [] l = myTest(lis) print l – Jack