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

Python温度转换代码报TypeError: 'int' object is not callable如何解决

问题解决方法

报错原因

报错的直接原因是语法书写错误:

  • 代码中5/9(temp-32)、9/5(temp+32)两处缺少乘法运算符*,Python会把5/9的数值结果识别为待调用的函数,因此抛出int类型不可调用的报错。
  • 除此之外代码还存在温度转换公式错误、单位判断逻辑倒置两个问题,即使补上乘号也无法得到正确的转换结果。

修正方案

1. 修正后完整代码

temp = float(input('Enter a temperature: '))
unit = input('C(Cel) or F(Faren): ').strip().upper()
if unit == 'C':
    # 摄氏度转华氏度
    fahrenheit = temp * 9/5 + 32
    print(f'转换后为 {fahrenheit:.2f} F')
elif unit == 'F':
    # 华氏度转摄氏度
    celsius = (temp - 32) * 5/9
    print(f'转换后为 {celsius:.2f} C')
else:
    print('请输入正确的单位 C 或 F')

2. 修正点说明

  • 用float()替代eval()处理输入,避免恶意输入导致的安全风险
  • 补上缺失的乘法运算符*,消除类型报错
  • 修正转换公式:摄氏度转华氏度为C*9/5 +32,华氏度转摄氏度为(F-32)*5/9
  • 调整逻辑判断顺序:输入单位为C时执行摄氏度转华氏度逻辑,输入为F时执行华氏度转摄氏度逻辑,同时补充非法单位的提示
  • 新增输出保留两位小数,可读性更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:54:08