python为什么返回值是None-CSDN论坛

 我来答
从空去听8
2017-11-16 · TA获得超过7439个赞
知道大有可为答主
回答量:6907
采纳率:93%
帮助的人:5585万
展开全部
原本这是一个递归写得计算阶乘的程序,现在被我改了一下如下

>>> 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)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式