Codingbat平台Python near_ten函数本地运行与平台判定结果不一致问题
near_10解法跨环境运行结果不一致的根本原因
核心原因是Python 2与Python 3的整数除法实现规则不同,两个运行环境的Python主版本不一致导致逻辑差异:
- Codingbat平台的Python运行环境为Python 2:整数使用
/运算符默认执行截断整数除法,例如13 / 10的结果为整数1,因此(num/10)*10可以正确计算出小于等于num的最大10的倍数,后续取余得到的结果为0-9区间的整数,判断逻辑可正常运行。 - 本地Jupyter Notebook的运行环境为Python 3:整数使用
/运算符默认执行浮点除法,例如13 / 10的结果为浮点数1.3,因此(num/10)*10的计算结果等于num本身的浮点值,后续取余运算得到的结果永远为0.0,会被判定为命中目标列表,导致所有num≥10的输入都错误返回True。
如果要让代码兼容两个版本的Python,只需要将代码中的/替换为整数除法运算符//即可;更简化的正确写法可以直接用num % 10获取余数,无需额外的分段判断。
内容的提问来源于stack exchange,提问作者elfde
相关产品推荐
相关产品推荐

