Python 返回元组的递归函数
我想构建一个递归函数,它接受一个自然数n,并返回一个从0开始,在n之前结束的数字元组。所以rec_range(5)返回(0,1,2,3,4),rec_range(1)返回(0,) 这就是我到目前为止所做的:Python 返回元组的递归函数,python,python-3.x,Python,Python 3.x,我想构建一个递归函数,它接受一个自然数n,并返回一个从0开始,在n之前结束的数字元组。所以rec_range(5)返回(0,1,2,3,4),rec_range(1)返回(0,) 这就是我到目前为止所做的: def rec_range(n): """returns a tuple of numbers starting with 0 and ending before n natural number -> tuple of numbers""" if n = 0:
def rec_range(n):
"""returns a tuple of numbers starting with 0 and ending before n
natural number -> tuple of numbers"""
if n = 0:
return 0
else:
return rec_range(0, n)
我不知道下一步该怎么办。另外,应该注意,我无法测试这个函数,因为有一个无效的语法错误。在python中,可以将元组与
+
连接起来
def rec_range(n):
if n == 0:
return (0,)
else:
return rec_range(n - 1) + (n,)
将rec_range(n)定义为以递增顺序返回计数def rec_range(n, answer=None):
if answer is None:
answer = []
if n > 0:
n -= 1
answer.append(n)
return rec_range(n, answer)
else:
return tuple(reversed(answer))
print(rec_range(0), rec_range(1), rec_range(10))
#() (0,) (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
你是对的,但是有一个类型错误。。。TypeError:不支持+:“int”和“tuple”的操作数类型