函数递归倒计时

时间:2021-04-27 15:10:28

标签: python

定义一个名为 count_down 的函数,它接受 1 个参数。当您调用 count_down(3) 时,输出应该是这样的:3... 2... 1... 0!。

我的代码如下:

def count_down(start):
    """
    Counting down a sequence with a skip value,
    from a defined start point in reversed order.

    Args:
        start: start loop index.
        skip: number to skip over.

    Returns:
        (list): skipped list.

    """
    return [num for num in reversed(range(start + 1)) ]



print(count_down(3))
print(count_down(4))

但输出是 [3, 2, 1, 0] [4, 3, 2, 1, 0] 如何获得有问题的格式描述的格式: 3...2...1...0!

2 个答案:

答案 0 :(得分:1)

对于任何递归函数,您都需要考虑导致它结束的条件。在这种情况下,当 start 为 0 时,您已完成,因此此时是打印出您的特殊情况(“0!”)并返回的时候了。在其他情况下,您希望打印 start 的当前值,然后使用 count_down 减 1 再次调用 start

示例:

def count_down(start):
    if start == 0:
        print("0!")
        return
    print(start, end="...")
    count_down(start -1)
        
count_down(3)

输出:

3...2...1...0!

答案 1 :(得分:0)

print("... ".join(map(str, count_down(3))) + "!")

-by Samwise