Skip to content

单位转换器

简单约 25 分钟

你将构建什么

一个单位转换器:用户选择转换类型(长度或重量),输入数值和源单位,选择目标单位,程序输出转换结果。支持米、千米、英尺、英寸以及千克、磅、盎司之间的互转。

学习目标

  • 用函数封装每种单位转换公式
  • 用菜单驱动用户交互流程
  • 理解单位之间的换算关系和系数
  • 处理用户选择分支,输出格式化结果

前置要求

  • 了解函数和条件判断
  • 了解基本的数学运算
  • 已完成“简单计算器”项目或具备同等基础

步骤

  1. 1

    定义长度转换函数

    以米为基准单位,定义函数把任意长度单位转换为米,再从米转换到目标单位。例如:1 千米 = 1000 米,1 英尺 = 0.3048 米,1 英寸 = 0.0254 米。

    代码
    // 以米为基准的换算系数
    function toMeters(value, unit):
        if unit == "km": return value * 1000
        if unit == "m":  return value
        if unit == "ft": return value * 0.3048
        if unit == "in": return value * 0.0254
        return "未知单位"
    
    function fromMeters(meters, unit):
        if unit == "km": return meters / 1000
        if unit == "m":  return meters
        if unit == "ft": return meters / 0.3048
        if unit == "in": return meters / 0.0254
        return "未知单位"

    预期结果

    调用 toMeters(1, “km”) 返回 1000,fromMeters(1000, “ft”) 返回约 3280.84。

  2. 2

    定义重量转换函数

    以千克为基准,定义重量转换函数。1 磅 = 0.4536 千克,1 盎司 = 0.0283 千克。结构与长度转换完全一致。

    代码
    function toKilograms(value, unit):
        if unit == "kg": return value
        if unit == "lb": return value * 0.4536
        if unit == "oz": return value * 0.0283
        return "未知单位"
    
    function fromKilograms(kg, unit):
        if unit == "kg": return kg
        if unit == "lb": return kg / 0.4536
        if unit == "oz": return kg / 0.0283
        return "未知单位"

    预期结果

    调用 toKilograms(1, “lb”) 返回约 0.4536。

  3. 3

    构建用户交互菜单

    显示菜单让用户选择转换类型(1=长度,2=重量),然后输入数值、源单位、目标单位。根据选择调用对应的转换函数。

    代码
    print("单位转换器")
    print("1) 长度转换")
    print("2) 重量转换")
    choice = input("请选择 (1/2):")
    
    value = input("请输入数值:")
    fromUnit = input("请输入源单位:")
    toUnit = input("请输入目标单位:")
    
    if choice == "1":
        result = fromMeters(toMeters(value, fromUnit), toUnit)
    else if choice == "2":
        result = fromKilograms(toKilograms(value, fromUnit), toUnit)
    
    print(value + " " + fromUnit + " = " + result + " " + toUnit)

    预期结果

    选择 1、输入 1、km、m,输出“1 km = 1000 m”。

  4. 4

    格式化输出并测试

    把结果格式化为保留两位小数。测试几组常见转换:1 千米 → 米、1 英尺 → 英寸、1 千克 → 磅,确认结果合理。

    代码
    // 保留两位小数
    formattedResult = round(result, 2)
    print(value + " " + fromUnit + " = " + formattedResult + " " + toUnit)

    预期结果

    输出整洁的两位小数结果,如“1 kg = 2.20 lb”。

自己动手试试

你学到了什么

你掌握了用基准单位做中转的转换模式——这是处理多对多关系的通用技巧。同时学会了用菜单驱动交互流程,让程序更易用。

相关资源

相关课程

相关练习

相关工具

相关参考文档

相关错误

相关术语

相关术语

新手友好的术语表用大白话解释编程术语——变量、函数、DOM、Promise 等等。

相关错误

用大白话解释常见错误——什么意思、为什么发生、如何修复。

← 返回主题