使用 python 生成阶乘代码有什么问题?
making factorial code with python what's the problem,?
def factorial(n):
if (n>1):
return n* factorial(n-1)
def factorial(n):
if (n>1):
return n* factorial(n-1)
else:
return 1
第一个代码有错误但是第二个函数运行正常
这两个程序有什么区别?
第一个代码有什么问题?
谢谢
问题是当第一个代码计算 n<=1
时,没有 returned 值。这会导致函数(默认情况下)return None
。现在在计算 2 时,程序说
return n* factorial(n-1)
即相当于;
return 2*None #Since factorial(1)=None
因此它给出了一个错误,因为 NoneType
不能乘以一个整数
def factorial(n):
if (n>1):
return n* factorial(n-1)
def factorial(n):
if (n>1):
return n* factorial(n-1)
else:
return 1
第一个代码有错误但是第二个函数运行正常 这两个程序有什么区别? 第一个代码有什么问题? 谢谢
问题是当第一个代码计算 n<=1
时,没有 returned 值。这会导致函数(默认情况下)return None
。现在在计算 2 时,程序说
return n* factorial(n-1)
即相当于;
return 2*None #Since factorial(1)=None
因此它给出了一个错误,因为 NoneType
不能乘以一个整数