【发布时间】:2016-06-12 03:12:05
【问题描述】:
我编写了一个函数,该函数将一个正整数 n 作为输入,并递归地返回一个阶乘值列表 1!, 2!, 。 . . ,嗯!。
但是,我无法让它仅打印一次列表。我尝试将打印语句放在各种循环/位置,它总是打印至少 3 次。我也尝试过打印该函数,但它返回“无”,如果我在函数中有打印语句,它似乎只会打印。为什么是这样?
这是我的代码:
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 循环呢?我不知道你为什么需要一遍又一遍地重复这个函数。 -
是的,它永远是 1,不知道为什么我这样写。这个想法是练习递归,而不仅仅是使用 for 循环,这就是它看起来很乱的原因。