我遇到以下代码的问题:
def myprogram(x):
if x == []:
return x
else:
return myprogram(x[1:]) + [ x[0] ]
参数类型(x)
是什么?
这个功能有什么作用?
我应该编写用参数调用此函数的代码并找到返回值,但我无法理解这里发生的事情。任何帮助/反馈将不胜感激。
答案 0 :(得分:7)
由于这显然是家庭作业,我将限制我的答案。
我应该编写调用此函数的代码
很明显,该功能正在期待一个列表。我留给你来弄清楚剩下的。
如果您不确定如何继续,可以尝试使用各种列表调用它以查看它返回的内容。但是,最终您必须阅读并理解源代码,以确定函数的功能。
答案 1 :(得分: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?