我在Python 2.7.9中的代码出了什么问题?

时间:2015-09-16 18:40:38

标签: python python-2.7

我刚开始学习python并编写了一个程序来计算数字的阶乘。我遇到了逻辑错误。 fact函数返回的值为None,执行后factorial的值为24。

factorial = 1

def fact(num) :
    if num == 0 :
        return 1
    global factorial
    print factorial
    factorial *= num
    if num-1 > 1 :
        fact(num - 1)
    else :
        return factorial

print fact(4)
print factorial

输出:

1
4
12
None
24

1 个答案:

答案 0 :(得分:2)

你应该改变

if num-1 > 1 :
    fact(num - 1)
else:
    return factorial

为:

if num-1 > 1 :
    return fact(num - 1)
else :
    return factorial

问题是除了基本情况之外你没有返回任何东西。