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

Python递归函数处理奇数时出现内核问题,偶数运行正常求助

问题原因

你写的递归函数遇到奇数时会陷入无限递归:

  • 传入奇数(比如5),函数先打印"enter a even number",但没有终止递归,而是继续执行return evenNum(num-2),5-2=3(还是奇数),再次打印提示后继续减2到1,再到-1、-3...一直循环下去,最终触发递归深度超限,导致内核崩溃,出现你看到的报错。
  • 传入偶数时,num会一步步减到2,触发return num终止递归,所以能正常运行。
修复方案

给奇数检测的分支加上终止逻辑,同时补充对小于2的偶数的处理,避免递归到负数:

# recursive demo function1
# Even nums
def evenNum(num):
    # 检测到奇数,打印提示后直接返回,终止递归
    if num % 2 != 0:
        print("enter a even number")
        return
    # 处理小于2的偶数(比如0),避免递归到负数
    if num < 2:
        print("number should be at least 2")
        return
    # 递归终止条件:num等于2时返回
    if num == 2:
        return num
    else:
        return evenNum(num-2)        

evenNum(5)  # 输出:enter a even number
evenNum(6)  # 输出:2
evenNum(0)  # 输出:number should be at least 2
关键修改点
  • 奇数分支添加return,直接终止递归,不让程序继续往下执行递归调用
  • 新增对num小于2的判断,防止传入0或负数时出现无限递归

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 01:05:18