Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
29 / 24 / 5
Регистрация: 15.10.2019
Сообщений: 268

Ошибка в выводе классов

21.09.2020, 22:17. Показов 5035. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задачка:
Галочка — это ломаная линия из трёх точек. Задаётся галочка своими точками класса Point. Строковое представление галочки __str__ составляется из имён трёх её точек в порядке их задания без каких-либо разделителей. Если точки галочки лежат на одной прямой (в том числе при совпадении координат двух или всех трёх точек), галочка считается вырожденной, и тогда при преобразовании к булеву значению она даёт False. Невырожденная галочка приводится к True.

Две галочки считаются равными, если равны все их точки (точки в этом случае сравниваются только по координатам, без учёта имён), при этом порядок концов галочек не важен, а вот середина должна сравниваться именно с серединой.

Реализуйте класс для галочек с именем CheckMark. Решение также должно содержать вспомогательный класс Point (в случае использования класса из предыдущих задач не забудьте при необходимости внести в него изменения).
]код программ и вывод снизу в картинке


мой код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
class Point():
    def __init__(self, name, x, y):
        self.name = name
        self.x = x
        self.y = y
 
    def get_x(self):
        return int(self.x)
 
    def get_y(self):
        return int(self.y)
 
    def get_coords(self):
        return self.x, self.y
 
    def __str__(self):
        return '{}({}, {})'.format(self.name, self.x, self.y)
 
    def __invert__(self):
        return Point(self.name, self.y, self.x)
 
    def __repr__(self):
        return "Point('{}', {}, {})".format(self.name, self.x, self.y)
 
    def __eq__(self, other):
        if self.name == other.name and self.x == other.x and self.y == other.y:
            return True
        return False
 
    def __ge__(self, other):
        if self.name >= other.name:
            return True
        elif self.name == other.name and self.x >= other.x:
            return True
        elif self.name == other.name and self.x == other.x and self.y >= other.y:
            return True
        return False
 
    def __le__(self, other):
        if self.name <= other.name:
            return True
        elif self.name == other.name and self.x <= other.x:
            return True
        elif self.name == other.name and self.x == other.x and self.y <= other.y:
            return True
        return False
 
    def __gt__(self, other):
        if self.name > other.name:
            return True
        elif self.name == other.name and self.x > other.x:
            return True
        elif self.name == other.name and self.x == other.x and self.y > other.y:
            return True
        return False
 
    def __lt__(self, other):
        if self.name < other.name:
            return True
        elif self.name == other.name and self.x < other.x:
            return True
        elif self.name == other.name and self.x == other.x and self.y < other.y:
            return True
        return False
 
 
class CheckMark:
    def __init__(self, a, b, c):
        self.line = [a, b, c]
        self.a = a
        self.b = b
        self.c = c
 
    def __str__(self):
        return f'{self.a[0]}{self.b[0]}{self.c[0]}'
 
    def bool(self):
        if self.a[1] == self.b[1] and self.a[2] == self.b[2] or \
                self.a[1] == self.c[1] and self.a[2] == self.c[2] or \
                self.b[1] == self.c[1] and self.b[2] == self.c[2]:
            return False
        return True
 
    def __eq__(self, other):
        if (self.line[0][1] == other.line[0][1] and self.line[0][2] == other.line[0][2] and
            self.line[1][1] == other.line[1][1] and self.line[1][2] == other.line[1][2] and
            self.line[3][1] == other.line[3][1] and self.line[3][2] == other.line[3][2]) or \
                (self.line[0][1] == other.line[3][1] and self.line[0][2] == other.line[3][2] and
                 self.line[1][1] == other.line[1][1] and self.line[1][2] == other.line[1][2] and
                 self.line[3][1] == other.line[0][1] and self.line[3][2] == other.line[0][2]):
            return True
        return False
 
 
p_A = Point('A', 1, 2)
p_B = Point('B', 0, 1)
p_C = Point('C', -1, 2)
p_D = Point('D', 2, 2)
p_E = Point('E', 2, 0)
p_F = Point('F', 2, -1)
cm_ABC = CheckMark(p_A, p_B, p_C)
cm_DEF = CheckMark(p_D, p_E, p_F)
cm_ABB = CheckMark(p_A, p_B, p_B)
print(cm_ABC, bool(cm_ABC))
print(cm_DEF, bool(cm_DEF))
print(cm_ABB, bool(cm_ABB))

пичарм выдает вот такую ошибку:
return f'{self.a[0]}{self.b[0]}{self.c[0]}'
TypeError: 'Point' object is not subscriptable

Сможете помочь?
Миниатюры
Ошибка в выводе классов  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.09.2020, 22:17
Ответы с готовыми решениями:

Проблема при выводе классов
Здравствуйте, имеется задание, используя классы ввести данные про планетарию. Вкратце проблема, иерархия классов планет. система...

Использование классов generic при выводе таблицы
Всем привет. Имеется такая задача. Описать структуру, содержащую следующие элементы: поля для хранения фамилии, года рождения, вида...

Ошибка при добавлении классов в диаграмму классов
Экспортнул проект на C++ из Qt в Студию. Добавляю классы в диаграмму - выскакивает ошибка: Reverse Engineering Started. 29.09.2015...

21
5184 / 1074 / 150
Регистрация: 29.01.2013
Сообщений: 6,258
22.09.2020, 11:30
Студворк — интернет-сервис помощи студентам
и я проверил: работает.
Code
1
2
3
ABC True
DEF True
ABB True
0
29 / 24 / 5
Регистрация: 15.10.2019
Сообщений: 268
22.09.2020, 11:33  [ТС]
Alli_Lupin, dondublon, хорошо, спасибо вам за работу с таким бревном, как я. Домой вернусь и все проверю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.09.2020, 11:33

Ошибка в выводе
Добрый день, не могли бы подсказать как правильно умножить матрицу на число? А то вывод не корректный Вот код: r1 =...

Ошибка в выводе
Подскажите в чем проблема. Во втором иф выдает не тот результат который нужен #include &lt;iostream&gt; using namespace std; float...

Ошибка в выводе
У меня в ответе в моей таблице 2 и 3 столбы не равны а должны быть равны Условие: Значение аргумента x меняется от a до b с шагом h....

Ошибка в выводе
При каком-либо введённом значение, в итоге отображается два ответа. Хотя по факту только один должен быть. Где именно ошибка ? При...

Ошибка в выводе
Сделайте функцию solve(*coefficients), которая умеет решать уравнения степени не выше второй (квадратные и линейные). Если у функции три...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru