Python递归仅返回单个输出问题排查:运行时内核崩溃如何修复
递归函数崩溃问题修复
核心错误说明
原代码存在两个致命逻辑问题:
- 终止逻辑错误:else分支中再次调用递归函数,会进入无限递归循环,最终触发栈溢出导致内核崩溃。以你传入的Number=6为例,当Successor增加到7时进入else分支,此时会重复调用
Fuction(6,7),递归永远不会停止。 - 返回值逻辑错误:if分支执行递归调用时没有添加return语句,无法将深层递归的结果逐层返回,最终会得到None值,和你此前排查的返回None问题属于同一类逻辑缺陷。
修复后代码
Number = 6 Successor = 0 def Function(Number, Successor): if (Number - Successor) + 1 > 0: Successor += 1 # 新增return传递递归结果 return Function(Number, Successor) else: # 终止时直接返回当前Successor,不要继续递归 return Successor A = Function(Number, Successor) print(f'The Successor of {Number} is {A}')
运行结果
执行后输出:The Successor of 6 is 7,完全符合预期。
内容的提问来源于stack exchange,提问作者Phicalc
相关产品推荐
相关产品推荐

