Python 函数递归倒计时

Python 函数递归倒计时,python,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: star

定义一个名为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!

打印(“…”.join(映射(str,倒计时(3)))+“!”)


–Samwise

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

例如:

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

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

编写递归函数时,首先要考虑的是什么?它与您给出的问题描述不匹配--是问题的一部分,还是您从其他地方复制并粘贴了它?您的函数不是递归的,我没有看到任何地方说它应该是…尝试
print(“…”).join(map(str,count_down(3))+“!”
像输入5一样倒计时,输出5 4 3 2 1,但我希望输出是5…4…3…2…1…0!