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

Python英寸与厘米互转代码输出结果错误,求助排查问题原因

代码错误原因
  • 核心问题出在if分支的逻辑判断语法错误:你写的if ms == 'inch' or 'in': 不符合Python的判断逻辑,该语句会被解析为(ms == 'inch') or ('in'),而非空字符串'in'的布尔值永远为True,因此不管用户输入什么单位,都会命中第一个if分支,永远把输入的数值当成英寸来计算厘米,自然会得到错误结果。
  • 额外冗余问题:代码中没必要声明global类型的inch和cm变量,函数内部的局部变量完全可以承载存储结果的需求,滥用全局变量反而容易引发变量冲突。
  • 可选优化点:你预期的输出保留了3位小数,可以在格式化打印时指定小数位数来匹配需求,判断逻辑也可以简化为ms in (xx,xx)的写法,更简洁不易出错。
修正后的完整代码
def intocm():
    ms = input('What is it? (inch-in or centimeter-cm): ')
    am = int(input('How many of it: '))
    unit_coefficient = 2.54
    # 修正判断逻辑,简化写法
    if ms in ('inch', 'in'):
        inch = am
        cm = am * unit_coefficient
    elif ms in ('centimeter', 'cm'):
        cm = am
        inch = cm / unit_coefficient
    # 格式化输出保留3位小数
    print(f'inch: {inch:.3f}, centimeter: {cm:.3f}')

intocm()
效果验证

输入cm和6时,输出结果为inch: 2.362, centimeter: 6.000,符合预期效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:06:04