基于用户输入和类计算斜边和角度度量的Python脚本

2024-10-01 19:29:38 发布

您现在位置:Python中文网/ 问答频道 /正文

到目前为止,找到斜边“c面”没有问题,问题是当我试图计算角度时,我很确定它返回了一个错误的角度值

import math
from math import sqrt

class Triangle:

    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), '°')

Tags: importselfinputreturndefmathsqrtside
2条回答

这里有一个方法来做你想做的事

首先,在计算side_c时,将其另存为属性

def SidesCalculate(self, ):
    self.side_c = sqrt(self.side_a ** 2 + self.side_b ** 2)
    return self.side_c

其次,给参数side_c一个默认值None。(CFLS指出的以下函数中还有另一个数学错误)

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(), '°')
def AnglesCalculate(self, side_c):
    x = math.asin(self.side_a / side_c)
    x = round(x * 180 / math.pi)
    return x

相关问题 更多 >

    热门问题