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

为何我的Python递归程序返回None?递归函数返回值问题排查

问题原因分析

你的递归函数出现返回None的问题,核心原因是异常分支里的递归调用没有传递返回值:

  • 当第一次输入非整数(比如ll),触发except块,此时函数会调用inp()发起递归,但这个递归调用的结果没有被return出去。
  • 当第二次输入正确的整数(6),当前递归层级的函数会返回6,但这个返回值只传递给了上一层递归的inp()调用,而上一层函数在except块里没有把这个值返回,所以最外层的inp()最终没有拿到有效返回值,默认返回None。

修正后的代码

只需在except块里加上return,把递归调用的结果传递回去即可:

def inp():
    try:
        k=input("enter")
        l=int(k)
        return l
    except :
        return inp()  # 加上return传递递归结果

print(inp())

运行这段代码,输入错误后再输入正确整数,就能正常输出对应的数值了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 01:17:12