Python中华氏度转摄氏度出现TypeError错误,如何修复?
修复华氏度转摄氏度的Python代码错误
错误原因分析
- 类型不匹配:
input()函数返回的是字符串类型,直接和整数32做减法运算会触发TypeError,因为字符串与整数不支持减法操作。 - 公式错误:转换公式写反了,正确的华氏度转摄氏度公式应为:
摄氏度 = (华氏度 - 32) / 1.8(等价于(华氏度 - 32) * 5/9)。
修复后的代码
# 将输入的字符串转换为浮点数,兼容整数和小数输入 temperature_f = float(input('Please enter the temperature :')) # 使用正确的转换公式计算摄氏度 celsius = (temperature_f - 32) / 1.8 # 格式化输出结果,保留两位小数更清晰 print(f'The temperature is {celsius:.2f} centigrade')
代码说明
float(input(...)):把用户输入的字符串转为浮点数,既能处理整数输入(如50),也能处理小数输入(如98.6)。- 修正后的公式:遵循标准的温度转换逻辑计算结果。
f-string格式化:用{celsius:.2f}控制输出保留两位小数,提升结果可读性。
测试示例
输入50时,输出结果为:
Please enter the temperature :50 The temperature is 10.00 centigrade
内容的提问来源于stack exchange,提问作者aryan
相关产品推荐
相关产品推荐

