@hanli00 发表于 2025-5-1 23:13:56

温度转换

TempStr = input("输入一个带单位的温度:")
if TempStr[-1] in ['F','f']:
    C = (eval(TempStr)-32)/1.8
    print("转换后的温度是{:.2f}C".format(C))
elif TempStr[-1] in ['C','c']:
    F = 1.8*eval(TempStr)+32
    print("转换后的温度是{:.2f}F".format(f))
else:
    print("输入格式错误")
   

FishC 发表于 2025-5-1 23:14:56

用户提供的代码存在三个主要问题:
1. 判断条件缺失单位检测
2. 未正确提取温度数值
3. 变量名大小写不一致

修正后的代码:

TempStr = input("输入带单位的温度(如32F/20C): ")
if TempStr[-1].upper() == 'F':
    # 华氏转摄氏
    value = float(TempStr[:-1])
    C = (value - 32) / 1.8
    print("转换后的温度是{:.2f}C".format(C))
elif TempStr[-1].upper() == 'C':
    # 摄氏转华氏
    value = float(TempStr[:-1])
    F = 1.8 * value + 32
    print("转换后的温度是{:.2f}F".format(F))
else:
    print("输入格式错误(示例正确格式:32F或20C)")


关键修正说明:

[*]使用 TempStr[-1] 获取温度单位
[*]用 float(TempStr[:-1]) 提取数值部分
[*]增加单位统一大写处理 .upper()
[*]修正变量名 F 的大小写一致性


建议输入示例:
98.6F → 会转成37.00℃
0C → 会转成32.00℉

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

ydwb 发表于 2025-5-2 15:52:29

print("转换后的温度是{:.2f}F".format(f))
format(f))应改为F
页: [1]
查看完整版本: 温度转换