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

单位转换器函数运行异常:print语句触发Traceback报错求助

单位转换器报错修复方案

核心错误分析

  1. 字符串与数值拼接问题
    你的print语句存在两个错误:一是Python不允许直接用+拼接字符串和float类型;二是kpm本身已经是float值,没必要再用float()转换。

  2. 单位换算逻辑错误

    • 公里转米:正确公式是kilometer * 1000,你写成了除以1000,逻辑完全搞反
    • 分钟转秒:正确公式是totalTimeMinutes * 60,你写成了除以60,会导致后续英尺每秒的计算结果完全错误

修正后的完整代码

def big_to_small(kilometer, hours, minutes):
    totalTimeMinutes = (hours * 60) + minutes
    totalTimeHours = hours + (minutes / 60)
    
    kpm = kilometer / totalTimeMinutes
    kph = kilometer / totalTimeHours
    miles = kilometer / 1.61  # 变量名改为miles,更符合语义
    meters = kilometer * 1000  # 修正公里转米的公式
    totalTimeSeconds = totalTimeMinutes * 60  # 修正分钟转秒的公式
    mph = miles / totalTimeHours
    feet_per_second = (miles * 5280) / totalTimeSeconds
    
    # 用f-string格式化输出,避免类型拼接问题
    print(f'Kilos per minute = {kpm:.2f}')
    print(f'Kilos per hour = {kph:.2f}')
    # 可选:输出其他计算结果
    print(f'Miles = {miles:.2f}')
    print(f'Meters = {meters:.0f}')
    print(f'Miles per hour = {mph:.2f}')
    print(f'Feet per second = {feet_per_second:.2f}')

k = float(input("Kilometers known: "))
h = float(input("Hours traveled: "))
m = float(input("Additional Minutes: "))

big_to_small(k, h, m)

关键修改说明

  • 用f-string替代+拼接,既避免类型错误,还能通过:.2f控制小数位数,让输出更整洁
  • 修正了米和秒的换算公式,保证单位转换逻辑正确
  • 把语义模糊的freedoms改为miles,便于后续代码维护
  • 补充了其他计算结果的输出(可根据需求自行删减)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 09:33:12