python为什么返回值是None-CSDN论坛
展开全部
原本这是一个递归写得计算阶乘的程序,现在被我改了一下如下
>>> def factorial(n):
if n == 1:
return 1
else:
factorial(n-1)
结果当我
>>> print(factorial(7))
None
之前我还以为返回值应该是1的,可没想到竟然是none,谁能解释下,O(∩_∩)O谢谢
return factorial(n-1) 我是知道的啦,原以为执行else:
factorial(n-1)
后便又会调用factorial(n-1),然后继续递归下去,直到返回值为1停止,可返回值最后竟然是none,我很纳闷啊!!
很正常呀,你的else分支没有return语句,那么缺省的返回值就是None,也就是除了factorial(1)返回1之外,其他情况就是None,所以你应该写成return factorial(n-1)
>>> def factorial(n):
if n == 1:
return 1
else:
factorial(n-1)
结果当我
>>> print(factorial(7))
None
之前我还以为返回值应该是1的,可没想到竟然是none,谁能解释下,O(∩_∩)O谢谢
return factorial(n-1) 我是知道的啦,原以为执行else:
factorial(n-1)
后便又会调用factorial(n-1),然后继续递归下去,直到返回值为1停止,可返回值最后竟然是none,我很纳闷啊!!
很正常呀,你的else分支没有return语句,那么缺省的返回值就是None,也就是除了factorial(1)返回1之外,其他情况就是None,所以你应该写成return factorial(n-1)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询