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

如何将体重转换代码封装为def main函数并实现无效输入重输?

解决方案

我们把原有代码封装成带输入校验、支持返回结果的main()函数,具体实现如下:

完整代码

def get_valid_positive_input(prompt, input_type=float):
    """获取有效的正数输入,支持整数/浮点数类型校验"""
    while True:
        try:
            user_input = input_type(input(prompt))
            if user_input <= 0:
                print("请输入正数!")
                continue
            return user_input
        except ValueError:
            print(f"请输入有效的{input_type.__name__}类型数值!")

def main():
    # 磅转千克功能
    pounds = get_valid_positive_input("请输入磅数:", int)
    kgs = pounds / 2.2046
    rounded_kgs = round(kgs)
    print(f"转换后的千克体重为 {rounded_kgs}")

    # 地球体重转其他星球体重功能
    earth_weight = get_valid_positive_input("请输入您在地球上的体重(千克):")
    planet_weight_map = {
        "水星": 0.38,
        "金星": 0.91,
        "火星": 0.38,
        "木星": 2.34,
        "土星": 1.06,
        "天王星": 0.92,
        "海王星": 1.19,
        "冥王星": 0.06
    }
    calculated_weights = {planet: earth_weight * ratio for planet, ratio in planet_weight_map.items()}

    for planet, weight in calculated_weights.items():
        print(f"{planet}上的体重为 {weight:.2f} 千克。")
    
    # 返回所有转换结果,方便后续复用
    return {
        "pounds_converted_to_kgs": rounded_kgs,
        "planet_weights": calculated_weights
    }

# 执行函数
if __name__ == "__main__":
    conversion_result = main()
    # 可选:查看返回结果
    # print("转换结果数据:", conversion_result)

关键说明

  • 输入校验辅助函数:get_valid_positive_input统一处理输入错误情况(非数值输入、非正数输入),循环提示用户重新输入,避免代码冗余。
  • main()函数:整合原有的两个转换逻辑,完成计算后打印结果,同时返回包含所有转换数据的字典,满足返回值要求。
  • 代码优化:用字典存储星球体重比例,简化循环打印逻辑,让代码更易维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 18:05:33