添加每个递归调用的缩进
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
个缩进级别。
我正在尝试使用阶乘编写递归函数。我想我已经记下了代码,但在缩进方面遇到了问题。
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
个缩进级别。