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

为何Python递归函数cal返回None类型而非预期的g值?

问题原因

你的cal函数在递归分支里没有返回递归调用的结果。当len(g)!=1时,函数执行完cal(str(s))后,没有用return把这个递归调用的结果返回出去——Python里函数如果没有显式的return语句,默认会返回None,这就是你得到None的原因。

另外还要注意:你调用cal(n*k)时,如果n和k是整数,n*k是数字类型,传给cal后会因为数字没有len()属性直接报错,调用时需要先转成字符串。

修正后的代码
def cal(g):
    if len(g) == 1:
        return g
    else:
        s = 0
        for i in g:
            s += int(i)
        return cal(str(s))  # 这里加上return,把递归结果返回

a = cal(str(n*k))  # 把数字转成字符串再传入
print(a)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 05:31:23