我刚开始学习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
答案 0 :(得分:2)
你应该改变
if num-1 > 1 :
fact(num - 1)
else:
return factorial
为:
if num-1 > 1 :
return fact(num - 1)
else :
return factorial
问题是除了基本情况之外你没有返回任何东西。