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

Python入门问题:整数反转代码中/运算得到浮点数为何按整数处理

问题解答

核心原因

你观察到的现象是Python不同版本的/运算符规则差异导致的:

  • 你的代码能正常运行,说明你使用的是 Python 2.x 版本:该版本中如果/两侧都是整数,默认执行整数除法,会直接舍弃小数部分返回整数结果,所以45/10得到的本身就是整数4,不存在把浮点数4.5当作4处理的情况。
  • 如果你把代码放到Python 3.x环境运行,结果就会出错:Python 3中/统一返回浮点数,45/10得到的确实是4.5,后续循环会持续执行直到浮点数精度溢出,最终返回错误的结果。

兼容优化方案

如果要实现跨版本的整数反转功能,把/替换为显式的地板除运算符//即可,该运算符在Python 2.x和3.x中对正整数都会返回截断小数后的整数结果:

def intreverse(n):
  m = 0
  while n > 0:
    d, n = n % 10, n // 10
    m = 10 * m + d 
  return m
print(intreverse(45))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:36:04