【发布时间】:2020-11-01 08:43:26
【问题描述】:
您好,我想了解递归的工作原理。我知道递归会反复调用自己。我很想知道递归是否可以用来解决简单的问题,比如创建一个从 0 到 9 的列表。这是我试图转换为递归的程序:
For循环版本
def create_list(start, count):
mylist = []
for i in range(start, start + count):
mylist.append(i)
return mylist
the_list = create_list(0, 8)
print(the_list)
损坏的递归版本
def create_list(start, count):
mylist = []
mylist = create_list_recurse(start, start + count)
return mylist
def create_list_recurse(start, end):
if start >= end:
return
create_list_recurse(start + 1, end)
print(create_list(0, 9))
我在递归版本的工作中遇到了困难。该程序将只返回一个值列表。请告诉我我是否采取了错误的方法来解决这个问题。
【问题讨论】:
-
@Omni 这是因为注释掉的返回。我解决了。仍然对应该去那里感到困惑。
-
递归解法:
def create_list(start, end):try: return create_list(start, end)except RuntimeError: return list(range(start, end)) -
对不起,我应该指出,上述不是一个严肃的解决方案。