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

Python圆属性计算子程序中TypeError: unsupported operand type(s) for ** or pow(): 'function' and 'int'错误修复求助

解决Python函数调用时的参数传递错误:计算圆面积的问题

你分析得非常准确!这个错误确实是因为你把radius函数本身传给了circleArea,而不是调用radius(diameter)得到的数值结果。Python无法对函数对象执行平方运算,所以抛出了类型错误。

下面是修正后的完整代码,同时我会解释关键的修改点:

def radius(diameter):
    return diameter / 2

def circleArea(radius):
    return 3.14 * radius**2

def circumference(diameter):
    return 3.14 * diameter

def arcLength(circumference, arc_angle):
    return (circumference * arc_angle) / 360

# Example usage
diameter = 10
arc_angle = 45

# 方式1:先计算半径数值,再传入面积函数
circle_radius = radius(diameter)
print("This is the circle radius: " + str(circle_radius))
print("This is the circle area: " + str(circleArea(circle_radius)))

# 方式2:直接在参数中调用radius函数(更简洁)
# print("This is the circle area: " + str(circleArea(radius(diameter))))

print("This is the circle circumference: " + str(circumference(diameter)))
print("This is the arc length: " + str(arcLength(circumference(diameter), arc_angle)))

关键修正说明:

  1. 区分函数与函数调用结果:
    • radius是函数对象的名称,代表这个函数本身;
    • radius(diameter)才是执行函数并返回的具体数值,这才是circleArea需要的参数。
  2. 两种调用方式都可行:
    • 第一种先把半径结果存在变量里,代码可读性更强,适合新手;
    • 第二种直接在参数中嵌套调用函数,代码更简洁。

运行修正后的代码,就能正确输出所有圆的属性啦。作为新手,记住「函数名+括号+参数」才是触发函数执行并获取结果的关键,慢慢就会熟练掌握函数调用和参数传递的逻辑了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 02:14:07