Python计算面积程序报错TypeError: 'int' object is not callable求解决
问题分析与解决
错误原因
你遇到的TypeError: 'int' object is not callable是因为:
- 循环里写的
length(i)*width(i)是错误用法:length和width是你一开始定义的全局int变量(初始值0),你把它们当成函数来调用(加了括号),但int类型根本不支持这种操作,所以触发报错。 - 调用
GetValues()后没有接收它返回的长度和宽度值,等于白调用,代码还是在使用全局的初始0值。 - 还有两个小问题:
GetValues里打印的"Lengt"拼写错误,且函数直接依赖全局循环变量i,耦合性太高,不符合代码规范。
修正后的代码
def get_values(observation_num): print(f"Length {observation_num}") length = int(input()) print(f"width(m) {observation_num}") width = int(input()) return length, width print("How many times") times = int(input()) for i in range(times): # 接收函数返回的当前观测的长度和宽度 current_length, current_width = get_values(i + 1) area = current_length * current_width print('The area :', area)
关键修改点
- 调整函数命名为
get_values(符合Python PEP8命名规范),新增observation_num参数传递当前观测次数,避免依赖全局变量。 - 调用函数时用变量接收返回的两个值,不再使用全局变量。
- 计算面积时直接用接收的变量相乘,删除错误的函数调用语法。
- 修正"Lengt"的拼写错误,改用f-string简化打印语句。
内容的提问来源于stack exchange,提问作者Simon
相关产品推荐
相关产品推荐

