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

Python实现Decimal转Binary时代码执行无输出问题排查求助

代码错误点

  • 第一处:if ip_val= 1 行使用赋值运算符=代替了等于判断运算符==,属于语法错误,正常运行会直接抛出SyntaxError,若你观测到无语法报错,大概率是代码誊写时的笔误。
  • 第二处:递归触发逻辑完全错误。当前代码只有输入值等于1时才会触发递归,你传入的24不满足该条件,不会进入递归分支,仅会执行一次print(24%2, end = '')输出单个0,输出末尾无换行可能会让你误认为没有任何输出。
  • 第三处:缺少正确的递归终止边界,就算你修正了判断运算符,当前逻辑也会出现无限递归导致栈溢出,正确的递归触发条件应该是ip_val > 1,即当值大于1时继续递归拆解高位,小于等于1时停止递归直接输出余数。

修正后可正常运行的代码

def decimalToBinary(ip_val):
    if ip_val > 1:
        # 大于1时继续递归拆解高位
        decimalToBinary(ip_val // 2)
    # 从高位到低位依次打印余数
    print(ip_val % 2, end = '')
 
# Driver Code
if __name__ == '__main__':
    ip_val = 24
    decimalToBinary(ip_val)
    # 输出结束后添加换行方便观察
    print()

运行后将输出24对应的二进制值11000。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:45:04