TypeError:** 或 pow() 不支持的操作数类型:Circle 属性计算子例程中的“function”和“int”[已关闭]

问题描述 投票:0回答:1

我正在尝试用 Python 编写一个子例程,根据直径和弧角计算并输出圆的以下属性:

圆的半径(直径除以2) 圆的面积(3.14 乘以半径的平方) 圆的周长(3.14乘以直径) 弧长(周长乘以弧角除以360) 但是,当我尝试计算圆的面积时遇到错误。这是回溯:

Traceback (most recent call last):
  File "c:\Users\Charlie\so.py", line 26, in <module>
    print("This is the circle area: " + circleArea())
  File "c:\Users\Charlie\so.py", line 13, in circleArea    
    circleAre = str(3.14*radius**2)
TypeError: unsupported operand type(s) for ** or pow(): 'function' and 'int'

这是我的代码:

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

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

错误信息:

Traceback (most recent call last):
  File "c:\Users\Charlie\so.py", line 26, in <module>
    print("This is the circle area: " + circleArea())
  File "c:\Users\Charlie\so.py", line 13, in circleArea    
    circleAre = str(3.14*radius**2)
TypeError: unsupported operand type(s) for ** or pow(): 'function' and 'int'

我尝试过的 我意识到错误是因为我将函数 radius 本身传递给circleArea,而不是它返回的值。我想我需要调用 radius(diameter) 并将结果传递给circleArea。

我是 Python 新手,正在学习如何正确调用函数和传递参数。 如何修复我的代码以正确计算和打印圆的属性?

python
1个回答
1
投票
def circleArea():
    circleAre = str(3.14*float(radius())**2)
    return circleAre

这样,您就可以调用该函数并获得浮点数形式的返回值,从而使计算有效。

© www.soinside.com 2019 - 2024. All rights reserved.