我写了一个函数,它将一个正整数n作为输入,并递归地返回一个阶乘值1 !, 2 !,的列表。 。 。 ,n !.功能多次打印
但是,我无法让它只打印一次。我已经尝试将打印语句放置在各种循环/位置中,并且始终打印至少3次。我也尝试过打印函数,但它返回'None',它似乎只打印如果我在函数中有打印语句。为什么是这样?
这里是我的代码:
def calc_Factorial(my_list, n, x, e):
if not my_list:
my_list.append(n-(n-1))
calc_Factorial(my_list, n, x, e)
else:
if len(my_list) < n:
my_list.append(my_list[e]*x)
calc_Factorial(my_list, n, x+1, e+1)
if len(my_list) == n:
print(my_list)
e = 0
x = 2
n = int(input('Enter number: '))
my_list = []
calc_Factorial(my_list, n, x, e)
'my_list.append(n-(n-1))':是不是只有1?另外,为什么不直接使用for循环呢?我不知道为什么你需要重复一遍又一遍的功能。 – numbermaniac
是的,它会一直是1,不确定为什么我这样写。这个想法是练习递归,而不是仅仅通过for循环来实现,这就是为什么它看起来很混乱。 – Perplexityy