Python 递归函数,每秒打印一个最小值为n到0的数字。我错过了什么?
如果n==1,则n-2==1,这将跳过基本情况。您可以完全删除if-else,只需在n小于0时终止函数即可。最后,您希望在函数中使用print语句,以便在每次迭代中调用它Python 递归函数,每秒打印一个最小值为n到0的数字。我错过了什么?,python,function,recursion,Python,Function,Recursion,如果n==1,则n-2==1,这将跳过基本情况。您可以完全删除if-else,只需在n小于0时终止函数即可。最后,您希望在函数中使用print语句,以便在每次迭代中调用它 def nr(n): if n == 0: return 0 else: if n >= 1: return nr(n-2) a = int(input('Enter a number: ')) print(nr(a)) 每秒钟打印一次数字 只有
def nr(n):
if n == 0:
return 0
else:
if n >= 1:
return nr(n-2)
a = int(input('Enter a number: '))
print(nr(a))
每秒钟打印一次数字
只有一个print
语句。您应该在递归函数中多次打印print
:
def nr(n):
if n >= 0:
print(n)
return nr(n-2)
a = int(input('Enter a number: '))
nr(a)
已查明的一些问题是:
- 给定任意奇数,您的代码将返回
,因为n变为不考虑的-1None
- 您没有返回所需的号码列表,而是只返回最后一个号码
def nr(n):
if n == 0:
return
else:
if n >= 1:
print(n)
nr(n - 2)
a = int(input("Enter a number: "))
nr(a)
您永远不会返回大于0的任何内容。您只能在
nr
中循环,直到达到0,然后重新运行0。或者你达到1,什么也不做。你似乎有足够的分数来发表评论。我不知道这意味着什么
def nr(n, list):
if n == 0:
list.append(n)
return list
elif n >= 1:
list.append(n)
return nr(n - 2,list)
else:
return list
a = int(input('Enter a number: '))
list = []
list = nr(a, list)
print(list)