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

如何用Python的模运算(%)修复英尺转码程序的计算Bug?

问题分析与修复方案

核心问题

你的代码存在两个关键错误:

  • 判断逻辑完全错误:(firstFeet + secondFeet) % 3的结果只能是0、1、2,永远不可能大于2,所以那个if语句根本不会触发,自然没法把多余的英尺转换成码。
  • 执行顺序颠倒:你先打印了总码数,之后才尝试调整码数,就算if语句能生效,打印的也是未调整前的数值。

修复后的代码

firstYard = int(input("Enter the Yards: "))
firstFeet = int(input("Enter the Feet: "))
secondYard = int(input("Enter the Yards: "))
secondFeet = int(input("Enter the Feet: "))

total_feet = firstFeet + secondFeet
# 计算总英尺可转换的额外码数,以及剩余英尺数
extra_yards = total_feet // 3
remaining_feet = total_feet % 3

total_yards = firstYard + secondYard + extra_yards

print("Yards: ")
print(total_yards)
print(" Feet: ")
print(remaining_feet)

修复说明

  1. 先计算总英尺数,用//3得到可转换的额外码数,%3得到剩余的英尺数,这才是英尺转码的正确逻辑。
  2. 先把所有码数(原始码数+转换来的码数)计算完成,再打印结果,确保输出的是最终正确数值。

测试输入(3,2,4,1)时:

  • 总英尺=2+1=3,extra_yards=3//3=1,remaining_feet=0
  • 总码数=3+4+1=8,输出就是8码、0英尺,完全符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 14:35:36