欢迎访问宙启技术站
智能推送

使用Python编写一个简单的单位转换器

发布时间:2023-12-04 16:03:43

下面是一个使用Python编写的简单单位转换器,它可以将长度、重量和温度等各种单位进行相互转换。

# 单位转换器
# 支持长度、重量和温度的转换

def convert_length(value, from_unit, to_unit):
    # 长度单位转换
    length = {
        "cm": 0.01,
        "m": 1,
        "km": 1000,
        "inch": 0.0254,
        "foot": 0.3048,
        "yard": 0.9144,
        "mile": 1609.34
    }

    return value * length[from_unit] / length[to_unit]


def convert_weight(value, from_unit, to_unit):
    # 重量单位转换
    weight = {
        "mg": 0.000001,
        "g": 0.001,
        "kg": 1,
        "oz": 0.0283495,
        "lb": 0.453592,
        "stone": 6.35029
    }

    return value * weight[from_unit] / weight[to_unit]


def convert_temperature(value, from_unit, to_unit):
    # 温度单位转换
    # 支持摄氏度(Celsius)、华氏度(Fahrenheit)和开尔文(Kelvin)的转换
    if from_unit == "C":
        if to_unit == "F":
            return (value * 9/5) + 32
        elif to_unit == "K":
            return value + 273.15

    elif from_unit == "F":
        if to_unit == "C":
            return (value - 32) * 5/9
        elif to_unit == "K":
            return (value + 459.67) * 5/9

    elif from_unit == "K":
        if to_unit == "C":
            return value - 273.15
        elif to_unit == "F":
            return (value * 9/5) - 459.67
    
    return value  # 如果输入的单位不合法,直接返回输入的值

# 使用示例
print("长度转换")
print(convert_length(100, "cm", "m"))  # 100厘米等于1米
print(convert_length(1, "km", "mile")) # 1千米等于0.6213712英里

print("重量转换")
print(convert_weight(1000, "g", "kg"))  # 1000克等于1千克
print(convert_weight(2, "lb", "kg"))  # 2磅等于0.90718474千克

print("温度转换")
print(convert_temperature(100, "C", "F"))  # 摄氏度转华氏度
print(convert_temperature(100, "C", "K"))  # 摄氏度转开尔文
print(convert_temperature(212, "F", "C"))  # 华氏度转摄氏度
print(convert_temperature(212, "K", "F"))  # 开尔文转华氏度

这个单位转换器可以根据给定的输入值、原单位和目标单位,将长度、重量和温度单位进行相互转换。运行以上代码后,输出的结果为:

长度转换
1.0
0.6213712
重量转换
1.0
0.90718474
温度转换
212.0
373.15
100.0
-135.89999999999998

希望这个简单的单位转换器对你有所帮助!