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

递归中尝试返回count时为何返回None?

问题原因分析与修正

问题出在递归调用时没有传递返回值:

当count从1到9时,函数执行完print(count)后调用了myfun1(count),但这一步没有用return返回递归调用的结果。这些层级的函数调用在执行完递归后,会默认返回None。

只有当count等于10时,最内层的函数确实返回了10,但这个返回值没有被上层的函数调用接住并继续返回,所以最终整个myfun1(0)的调用返回的是None。

修正后的代码

def myfun1(count):
    count += 1
    if count == 10:
        return count
    print(count)
    return myfun1(count)  # 加上return传递递归的返回值

if __name__ == '__main__':
    print(myfun1(0))

修改后,每一层递归调用都会把下层的返回值传递上来,最终主函数就能得到预期的10。

内容的提问来源于stack exchange,提问作者Alpha々 Reaper

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 11:10:21