如何在第一次迭代中仅在递归Python函数中打印一次语句?

2024-03-28 10:37:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要编写一个函数,将计时器打印为输出(同时打印所有内容)。但是,我需要在开头写上“准备好了吗?”,所以我只希望打印一次

以下是我目前掌握的情况:

def factorial(i):
    while i > 0:
        print(i)
        return (factorial(i-1))
    print('Go!')

factorial(5)

我想让函数像这样打印输出:

Ready?    
5
4
3
2
1
Go!

Tags: 函数go内容returndef情况计时器print
2条回答

可以向函数中添加参数

FIRST_TIME = True
NOT_FIRST_TIME = False


def factorial(i, is_first_time):
    if is_first_time:
        print('Ready?')
    if i:
        print(i)
        return (factorial(i-1, NOT_FIRST_TIME))
    print('Go!')


factorial(5, FIRST_TIME)

您可以使用inner function

def factorial(i):
    def recursive_output(i):
        if i > 0:
            print(i)
            recursive_output(i-1)

    print("Ready!")
    recursive_output(i)
    print("Go!")

相关问题 更多 >