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

Python递归实现二进制转十进制函数出现Recursion Error的原因

RecursionError 含义与代码问题分析

错误含义

RecursionError 是 Python 的内置异常,当递归调用的深度超出了 Python 默认的递归深度限制时触发。直白说就是递归函数一直在自我调用,没有正确触底停止,最终耗尽了系统允许的递归层级上限。

产生原因

你的代码里有两个核心问题导致了无限递归:

  • 基例判断完全错误:函数接收的参数 b 是二进制字符串,但你在基例里把它和整数 0、1 做比较(b == 0、b == 1)。字符串和整数属于不同类型,永远不可能相等,所以这两个基例永远不会被触发。
  • 递归无法终止:当你不断对字符串切片(b[1:]),最终会得到空字符串 "",此时依然会进入 else 分支,继续调用 bin_to_dec(""),而空字符串切片后还是空字符串,导致递归无限循环,直到超过 Python 的递归深度限制,触发 RecursionError。

另外还有个隐性问题:基例返回的是字符串("0"、"1"),但递归逻辑里试图把字符串和整数相加(int(b[0])*2 + bin_to_dec_rest),即使修复了递归问题,这里也会触发类型错误,需要统一返回整数类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 23:27:28