You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么我的Python递归阶乘函数无法正常运行?

阶乘递归函数返回None的问题分析

你的代码问题出在缩进错误,导致递归分支的返回语句永远不会被执行,且非基准情况时函数没有返回值,Python默认返回None。

看你的原始代码:

def factorial_recursive(n):
    if n == 1 or n == 0:
        return 1
        return n * factorial_recursive(n-1)  # 这条语句缩进在if代码块内,永远无法执行
  • 当n等于0或1时,函数执行return 1后直接退出,后面的递归计算语句根本不会运行;
  • 当n大于1时,不会进入if分支,函数没有任何return语句,Python会默认返回None,这就是你得到None的原因。

修正后的代码只需调整递归语句的缩进,把它移到if代码块外面:

def factorial_recursive(n):
    if n == 1 or n == 0:
        return 1
    return n * factorial_recursive(n-1)

这样当n>1时,函数会执行递归计算,最终返回正确的阶乘结果120。

内容的提问来源于stack exchange,提问作者Moeed Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 22:09:22