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

为何我的代码输出函数对象而非三角形面积与周长?急求解答

问题分析与修复

你的代码存在三个核心问题,导致输出的是函数对象而非预期的计算结果:

1. 函数返回值错误

两个计算函数中,你返回的是函数本身(比如return triangle_area),而非计算好的结果变量。

2. 未正确调用函数

打印时直接引用函数名,没有传入参数并执行函数,Python会默认输出函数的内存地址。

3. 面积计算不符合要求

用//做整数除法,无法返回注释要求的float类型结果,需要改用浮点除法。


修正后的完整代码

def triangle_area(base, height):
    # 计算面积并返回float类型
    area = base * height / 2
    return area

def triangle_perimeter(a,b,c):
    # 返回周长(求和后round不影响,因为输入是整数)
    perimeter = round(a+b+c)
    return perimeter

def main():
    base = int(input('Enter the base of the triangle: '))
    height = int(input('Enter the height of the triangle: '))
    second = int(input('enter the second side of the triangle: '))
    third = int(input('Enter the third side of the triangle: '))
    # 调用函数并传入对应参数
    print('the area of the triangle is: ', triangle_area(base, height))
    print('the perimeter of the triangle is: ', triangle_perimeter(base, second, third))

# 确保主函数在脚本直接运行时执行
if __name__ == "__main__":
    main()

关键修改说明

  • 返回值修正:把return triangle_area改为return area,return triangle_perimeter改为return perimeter,确保返回计算结果而非函数对象。
  • 函数调用修正:打印时主动调用函数并传入参数,比如triangle_area(base, height),触发函数执行并获取返回值。
  • 面积计算修正:将//替换为/,保证结果为float类型,符合注释要求。
  • 语义优化:给输入提示补充side,让描述更清晰;添加if __name__ == "__main__":,规范脚本执行逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 04:06:14