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

为什么Python递归函数使用了return语句仍返回None值?

问题原因

Python中函数如果没有显式执行return语句返回值,默认会返回None。你当前的代码仅在base case(high == low的分支)添加了返回逻辑,另外两个递归调用分支没有加return,递归产生的结果没有被当前函数层向上传递,因此最外层的函数调用最终只能拿到默认的None。

修复后的代码

def list_min(lst, low, high):
    if high == low:
        return lst[low]
    elif lst[low] >= lst[high]:
        # 新增return,返回递归调用的结果
        return list_min(lst, low+1, high)
    else:
        # 新增return,返回递归调用的结果
        return list_min(lst, low, high-1)

lst1 = [1, 2, 3, 4, 2, 3, 1, 2, 34, 44]
print(list_min(lst1, 0, len(lst1)-1))
# 输出:1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:06:04