如何使用递归将从 0 开始的数字打印到给定的输入(详细信息在帖子中)?



更多详细信息:我得到了一个最大数字,并且必须从0打印到该数字,每个数字之间还有一些其他信息。

我的意思是这样的函数:

>>>print_num(2,4)

这将打印以下输出:

0    
4    
1    
4   
2

基本上给定第一个输入,打印 0,然后打印第二个输入,直到达到最大值。我必须只用 python 中的递归来做到这一点。

我有什么:

def print_num(num, info):
if num == 0:
print(num)
else:
print(num)
print(info)
print_num(num-1,info)

输出:

2
4
1
4
0

问题是这是从数字打印到 0,而不是从 0 打印到数字。有人可以帮我颠倒顺序吗?我不知道该怎么做。

在打印前调用print_num,以反转打印顺序

def print_num(num, info):
if num == 0:
print(num)
else:
print_num(num-1,info)
print(info)
print(num)

print_num(2, 4)

输出:

0
4
1
4
2

您可以简化它:

def print_num(num, info):
if num > 0:
print_num(num-1,info)
print(info)
print(num)

最新更新