使用递归时函数不返回

时间:2018-08-31 01:24:28

标签: python

我确定我犯了一个简单的错误,但是在我的函数中,当输入不是1或0时,它想返回用户给定输入的阶乘,实际上它什么也不返回。我打印出它在helper函数中正在执行的操作,看起来它获得了正确的结果,但是当我按如下所示运行它时,它什么也没有返回。请让我知道我正在进行哪些明显的监督。谢谢。

def recurseFactorial(num, mySum):
    if num==0 or num==1:
        return mySum
    else:
        recurseFactorial(num-1,mySum=mySum*num)

while True:
    myInput = input("Please enter the number: ")
    print(recurseFactorial(int(myInput), 1))

1 个答案:

答案 0 :(得分:3)

else分支中,您正在调用 recurseFactorial,但是您没有返回其结果。而且由于该分支没有return语句,因此默认情况下它返回None

您想要这个:

def recurseFactorial(num, mySum):
    if num==0 or num==1:
        return mySum
    else:
        return recurseFactorial(num-1,mySum=mySum*num)