def strings_in_a_list(n, s):
"""
----------------------------
Creates a Python list with a string, s, repeated n times. Uses recursion.
Use: list = strings_in_a_list (n, s)
-----------------------------
Preconditions:
n - a nonnegative integer (int)
s - a string (str)
Postconditions:
returns
l - a list with n copies of the string s (list of string)
-----------------------------
"""
l = []
l.append(s)
if len(l) != n:
l = l * n
return l
这是否是一个可接受的递归函数,如果没有,你能告诉我一个更好,更正确的方法吗?提前谢谢。
输出应该是这样的例子:
strings_in_a_list(3,' Dream')应该返回列表[' Dream',' Dream',' Dream']
答案 0 :(得分:1)
递归函数应该调用自身,并且至少采用以下的一般形式,将根据您尝试做的事情而改变。
if (terminate condition):
return (final value)
else:
return function( x - 1 )
这将做你想要的。终止条件是当n等于0时,返回空列表。否则l
等于函数调用的结果,并且在返回之前附加s
。
def strings_in_a_list(n, s):
if n == 0:
return []
else:
l = strings_in_a_list(n - 1, s)
l.append(s)
return l