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

为何Python整数反转代码输出'inf'?求错误排查与修复方法

嘿,我来帮你揪出代码里的问题!

你的核心错误在于使用了普通除法 / 而非整数除法 //,这直接导致了无限循环和最终的 inf 输出。

问题拆解

当你执行 n = n / 10 时,Python会返回浮点数结果:

  • 第一次循环后,345/10 得到 34.5,而不是整数34
  • 后续循环里,n 会变成 3.45、0.345、0.0345……永远不会等于0,循环会无限执行
  • 随着循环不停运行,r = r *10 +d 会持续累加数值,最终超出浮点数的取值范围,就变成了 inf(无穷大)

修复后的代码

把除法操作改成整数除法 //,这样每次都会将 n 转换为整数,直到 n 变为0时循环正常终止:

def intreverse(n):
    r = 0
    while n != 0:
        d = n % 10
        r = r * 10 + d
        n = n // 10  # 替换为整数除法
    print(r)
intreverse(345)

现在运行代码,输入345就能得到预期的反转结果543了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:20:47