Рассчитайте площадь Треугольника, используя Класс и Наследование - PullRequest
1 голос
/ 02 марта 2020

Эй, ребята, я пытаюсь определить площадь треугольника по формуле Герона, т.е. area = sqrt (s (s-l1) (s-l2) (s-l3)) . Для этого мне нужно проверить, соответствуют ли данные стороны треугольнику, который у меня есть.

Однако я не могу понять, как использовать это в унаследованном классе здесь.

Что я хочу сделать, это взять данные из родительского класса и вычислить площадь из унаследованного класса. Любая помощь приветствуется.

Используемая номенклатура 1) l1, l2, l3: стороны треугольника 2) Checktri метод используется для проверки наличия данных сторон добавить до треугольника или нет 3) Areatri является унаследованным классом Triangledim , где необходимо определить область

import math
class Triangledim:
    def __init__(self, l1, l2, l3):
        self.l1 = l1
        self.l2 = l2
        self.l3 = l3

#Check if the given measurements form a triangle
    def checktri(self):
        if (self.l1+self.l2>self.l3) & (self.l2+self.l3>self.l1) & (self.l1+self.l3>self.l2):
            s = (self.l1 +self.l2+self.l3)/2
            return ("Perimeter of the triangle is %f" %s)
        else : 
            return("not the right triangle proportions") 

class Areatri(Triangledim):
      def __init__(self):
            Triangledim.__init__(self)
            area = math.sqrt(self.s(self.s-self.l1)(self.s-self.l2)(self.s-self.l3))
            return area


p=Triangledim(7,5,10)

1 Ответ

1 голос
/ 02 марта 2020

Следующий код - это то, что вам, вероятно, нужно:

import math

class Triangledim():

    def __init__(self, l1, l2, l3):
        self.l1 = l1
        self.l2 = l2
        self.l3 = l3
        self.s = (self.l1+self.l2+self.l3) / 2.0

    def checktri(self):
        if (self.l1+self.l2>self.l3) and (self.l2+self.l3>self.l1) and (self.l1+self.l3>self.l2): 
            print("Perimeter of the triangle is: {}".format(self.s))
        else: 
            print("not the right triangle proportions") 

    def findArea(self):
        area = math.sqrt(self.s*(self.s-self.l1)*(self.s-self.l2)*(self.s-self.l3))
        print("The area of the triangle is: {}".format(area))

if __name__ == "__main__":
    p = Triangledim(7,5,10)
    p.checktri()
    p.findArea()

Вывод:

Perimeter of the triangle is: 11.0
The area of the triangle is: 16.24807680927192

Если вы хотите использовать наследие, вам подойдет следующее:

import math

class Triangledim():

    def __init__(self, l1, l2, l3):
        self.l1 = l1
        self.l2 = l2
        self.l3 = l3
        self.s = (self.l1+self.l2+self.l3) / 2.0

    def checktri(self):
        if (self.l1+self.l2>self.l3) and (self.l2+self.l3>self.l1) and (self.l1+self.l3>self.l2): 
            print("Perimeter of the triangle is: {}".format(self.s))
        else: 
            print("not the right triangle proportions") 

class Areatri(Triangledim):
    def findArea(self):
        area = math.sqrt(self.s*(self.s-self.l1)*(self.s-self.l2)*(self.s-self.l3))
        print("The area of the triangle is: {}".format(area))

if __name__ == "__main__":
    p = Areatri(7,5,10)
    p.checktri()
    p.findArea()

Выход:

Perimeter of the triangle is: 11.0
The area of the triangle is: 16.24807680927192
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...