添加每个递归调用的缩进

Adding a indentation of each recursive call

我正在尝试使用阶乘编写递归函数。我想我已经记下了代码,但在缩进方面遇到了问题。

def factorial(number,step=0):
    step += 1 
    st = ""

    if number == 1:
        print("Step", step, ": %sreturn 1"%(st)
        return 1
    else:
        print("Step", step, ": %s%d*factorial(%d)"%(st,number,number-1))
        st = "\t"
        return number * factorial(number - 1, step)

Output:
Step 1 : 5*factorial(4)
Step 2 : 4*factorial(3)
Step 3 : 3*factorial(2)
Step 4 : 2*factorial(1)
Step 5 : return 1

我需要的结果是:

Step 1 : 5*factorial(4)
Step 2 :     4*factorial(3)
Step 3 :         3*factorial(2)
Step 4 :             2*factorial(1)
Step 5 :                 return 1

您只需移除

st = "\t"

否则每次缩进都一样


试试这个:

st = "\t" * step

这样您每次都会有 step 个缩进级别。