到目前为止,找到斜边,“ c边”可以正常工作,问题是当我尝试计算角度时,我很确定它返回了错误的角度值。
导入数学从数学导入sqrt
三角类:
def __init__(self, side_a, side_b, ):
self.side_a = side_a
self.side_b = side_b
def SidesCalculate(self, ):
side_c = sqrt(self.side_a ** 2 + self.side_b ** 2)
return side_c
def AnglesCalculate(self, side_c):
x = math.sin(self.side_a / side_c)
math.asin(x)
x = round(x * 180 / math.pi)
return x
g = Triangle(side_a = int(input(“ Enter side a:”)),side_b = int(input(“ Enter side b:”))))print(“ side c =”,+ g.SidesCalculate())print(“ angle is =”,+ g.AnglesCalculate(side_c = True),'°')
def AnglesCalculate(self, side_c):
x = math.asin(self.side_a / side_c)
x = round(x * 180 / math.pi)
return x
这里是您想要做的一种方式。
首先计算side_c
,然后将其另存为属性。
def SidesCalculate(self, ):
self.side_c = sqrt(self.side_a ** 2 + self.side_b ** 2)
return self.side_c
第二,给参数side_c
设置默认值None
。 (在CFL指出的以下函数中,您还会遇到另一个数学错误)
def AnglesCalculate(self, side_c = None):
if side_c == None:
side_c = self.side_c
x = math.asin(self.side_a / side_c)
x = round(x * 180 / math.pi)
return x
现在,如果您希望班级选择以前计算的side_c
,则可以执行此操作:
g = Triangle(side_a=int(input("Enter side a: ")), side_b=int(input("Enter side b: ")))
print("side c =", + g.SidesCalculate())
print("angle is =", + g.AnglesCalculate(), '°')