递归 return python 中数字 0 到 n 的元组
Recursively return a tuple of numbers 0 to n in python
所以我想做的基本上是创建一个递归函数,return 是一个从 0 到给定数字 n 的数字元组,不使用 range()、循环或列表。问题是这样写的:
"Define a recursive function called rec_range() that takes a natural number n and returns a tuple of numbers starting with 0 and ending before n. So rec_range(5) returns (0,1,2,3,4) and rec_range(1) returns (0,)."
问题是我不知道如何创建一个 return 是元组的函数。我知道如何使用递归获得数字 n 的阶乘,但我们从未研究过如何 return 元组中的多个数字。
我现在唯一拥有的是:
def rec_range(n):
"""Takes a natural number n and returns a tuple of numbers starting with 0 and ending before n.
Natural Number -> tuple"""
if n == 0
return (,)
elif n == 1:
return (0,)
else:
???
抱歉,如果这个问题的答案真的很明显,我是编程新手
您想将元组附加在一起,因此使用 +
并递归您的函数,将值降低 1 。此外,n == 0
仅 return
(或 return None
)。确实 n == 0
调用是不必要的,您的代码可能更惯用,但我会把它留给您。
def rec_range(n):
"""Takes a natural number n and returns a tuple of numbers starting with 0 and ending before n.
Natural Number -> tuple"""
if n == 0:
return
elif n == 1:
return (0,)
else:
return rec_range(n-1) + (n-1,)
输出:
>>>rec_range(4)
(0, 1, 2, 3)
所以我想做的基本上是创建一个递归函数,return 是一个从 0 到给定数字 n 的数字元组,不使用 range()、循环或列表。问题是这样写的:
"Define a recursive function called rec_range() that takes a natural number n and returns a tuple of numbers starting with 0 and ending before n. So rec_range(5) returns (0,1,2,3,4) and rec_range(1) returns (0,)."
问题是我不知道如何创建一个 return 是元组的函数。我知道如何使用递归获得数字 n 的阶乘,但我们从未研究过如何 return 元组中的多个数字。
我现在唯一拥有的是:
def rec_range(n):
"""Takes a natural number n and returns a tuple of numbers starting with 0 and ending before n.
Natural Number -> tuple"""
if n == 0
return (,)
elif n == 1:
return (0,)
else:
???
抱歉,如果这个问题的答案真的很明显,我是编程新手
您想将元组附加在一起,因此使用 +
并递归您的函数,将值降低 1 。此外,n == 0
仅 return
(或 return None
)。确实 n == 0
调用是不必要的,您的代码可能更惯用,但我会把它留给您。
def rec_range(n):
"""Takes a natural number n and returns a tuple of numbers starting with 0 and ending before n.
Natural Number -> tuple"""
if n == 0:
return
elif n == 1:
return (0,)
else:
return rec_range(n-1) + (n-1,)
输出:
>>>rec_range(4)
(0, 1, 2, 3)