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

Python数字反转代码出现'inf'报错的问题求助

Python数字反转代码返回'inf'的问题解决

你的代码运行后返回inf,核心原因是Python与C语言的除法行为差异:

  • Python中/是浮点数除法,比如输入358时,Nb = Nb/10会依次得到35.8、3.58、0.358……永远不会等于0,导致循环无限执行。inv会被不断乘以10加余数,最终数值超出浮点数范围,变成无穷大(inf)。
  • 而C语言中整数使用/做除法是取整运算,Nb会逐步变为35、3、0,循环能正常终止。

修正后的代码

把浮点数除法改成Python的整数除法运算符//即可解决:

def envers(Nb):
    inv = 0
    cond = True
    while cond:
        s = Nb % 10
        inv = (inv * 10) + s
        Nb = Nb // 10  # 替换为整数除法,自动向下取整
        if Nb == 0:
            cond = False
    return inv

data = int(input("give num"))
res = envers(data)
print(res)

简化版代码(更简洁的写法)

可以直接用Nb > 0作为循环条件,去掉多余的cond变量:

def envers(Nb):
    inv = 0
    while Nb > 0:
        s = Nb % 10
        inv = inv * 10 + s
        Nb = Nb // 10
    return inv

data = int(input("give num"))
res = envers(data)
print(res)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 18:05:17