Периметр трайлинга с использованием python классов и объектов - PullRequest
0 голосов
/ 27 февраля 2020

Пытается найти периметр треугольника, но застрял в одной проблеме. При запуске я получаю сообщение об ошибке:

Triangle1.add_point(6, 1, 2)

Файл "/home/pravin/Desktop/oops/oop_drills.py", строка 33, в add_point print (self.sides) AttributeError: у объекта 'int' нет атрибута 'сторон' -4

import math


class Traingle:

    def __init__(self):
        self.sides = []

    def add_point(self,*args):
        print(self.sides)
        self.sides = [[args[0], args[1]]]
        self.sides = [[args[0], args[1]]]

    def perimeter(self):
        self.L1 = math.sqrt((self.sides[1][0] - self.sides[0][0]) ** 2 + (self.sides[1][1] - self.sides[0][1]) ** 2)
        self.L2 = math.sqrt((self.sides[2][0] - self.sides[1][0]) ** 2 + (self.sides[2][1] - self.sides[1][1]) ** 2)
        self.L3 = math.sqrt((self.sides[2][0] - self.sides[0][0]) ** 2 + (self.sides[2][1] - self.sides[0][1]) ** 2)
        return self.L1 + self.L2 + self.L3

    def is_equal(self, args):
        if [self.L1 + self.L2 + self.L3] == [args]:
            return 'yes'


Triangle1 = Traingle
Triangle1.add_point(6, 1, 2)
Triangle1.add_point(2, 1)
Triangle1.add_point(1, 5)
print('ddd',Triangle1.perimeter())

1 Ответ

0 голосов
/ 27 февраля 2020

Решает ли это вашу проблему? Как упомянуто в комментариях, вам нужно () для класса, и вам нужно добавить свои очки в список.

import math
class Traingle:

    def __init__(self):
        self.sides = []

    def add_point(self,*args):

        self.sides.append([args[0], args[1], args[2]])
        print(self.sides)


    def perimeter(self):
        self.L1 = math.sqrt((self.sides[1][0] - self.sides[0][0]) ** 2 + (self.sides[1][1] - self.sides[0][1]) ** 2)
        self.L2 = math.sqrt((self.sides[2][0] - self.sides[1][0]) ** 2 + (self.sides[2][1] - self.sides[1][1]) ** 2)
        self.L3 = math.sqrt((self.sides[2][0] - self.sides[0][0]) ** 2 + (self.sides[2][1] - self.sides[0][1]) ** 2)
        return self.L1 + self.L2 + self.L3

    def is_equal(self, args):
        if [self.L1 + self.L2 + self.L3] == [args]:
            return 'yes'


Triangle1 = Traingle()
Triangle1.add_point(6, 1, 2)
Triangle1.add_point(2, 1, 0)
Triangle1.add_point(1, 5, 0)

print('ddd',Triangle1.perimeter())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...