-23 / 3 / 0
Регистрация: 08.04.2020
Сообщений: 94

Builtins.TypeError: unorderable types: Point() < Point()

17.09.2020, 15:58. Показов 13708. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На данный момент в нашем классе Point даже точки с полностью совпадающими именами и обеими координатами не считаются равными, а сравнивать их между собой мы вообще не можем (а значит не можем и сортировать без явного указания ключа):

>>> points = [Point("A", 0, 3), Point("B", 4, 0)]
points.sort()

Traceback (most recent call last):
Python Shell, prompt 2, line 2
builtins.TypeError: unorderable types: Point() < Point()
Наведём порядок.
Пусть точки упорядочиваются лексикографически («как в словаре») по имени, при совпадении имён — по первой координате, при совпадении и имени, и первой координаты — по второй координате. Если же все три параметра у двух точек соответственно равны, точки считаются равными.
Добавьте в класс все необходимые для сравнения точек методы. Кроме того, не забудьте определить для Point магический метод repr.

Формат ввода
Каждый тест представляет собой код, в котором будет использоваться ваш класс.
Пример 1
Ввод Вывод
Python
1
2
3
4
5
6
7
8
9
10
11
12
from solution import Point
 
p_A1 = Point('A', 1, 2)
p_A2 = Point('A', 2, 1)
p_B1 = Point('B', 2, 3)
p_B2 = Point('B', 2, 3)
print(p_A1 == p_A2, p_B1 == p_B2)
print(p_A1 != p_A2, p_B1 != p_B2)
print(p_A1 < p_A2, p_B1 > p_B2)
print(p_A1 >= p_A2, p_B1 <= p_B2)
print(max(p_A1, p_B2, p_A2, p_B2))
print(min(p_A1, p_B2, p_A2, p_B2))
Code
1
2
3
4
5
6
False True
True False
True False
False True
B(2, 3)
A(1, 2)
Пример 2
Ввод Вывод
Python
1
2
3
4
5
6
from solution import Point
 
points = [Point('A', 101, 1), Point('B', -1, 0),
          Point('A', 11, 0), Point('A', 111, -11)]
points.sort()
print(', '.join(map(str, points)))
Code
1
A(11, 0), A(101, 1), A(111, -11), B(-1, 0)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.09.2020, 15:58
Ответы с готовыми решениями:

Ошибка TypeError: unorderable types: str() > int()
n=input('Введите число') summa=0 while n&gt;0: i=n%10 n=n/10 summa=summa+i print(summa) --------------------------- Выдает...

TypeError: incompaitable types, POINT instance instead of c_long instance
У меня есть класс, который является базовым для всех фигур: class Figure2D(): def __init__(self, *coords, background=Color('white'),...

Unorderable types: float() > tuple()
Продолжаю изучать питон) выдает ошибку, в конце сообщения. Как ее можно исправить? По поводу рентабельности программы - неочем, т.к создал...

4
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
17.09.2020, 17:01
Тот же вопрос - где ваша реализация класса Point?
0
8 / 7 / 2
Регистрация: 20.11.2018
Сообщений: 69
18.09.2020, 19:10
Рыжий Лис, была здесь задачка с этим классом
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Point:
    def __init__(self, name, x, y):
        self.x = x
        self.y = y
        self.name = name
        self.c = (x, y)
 
    def __str__(self):
        return f'{self.name}{(self.x, self.y)}'
 
    def __invert__(self):
        return Point(self.name, self.y, self.x)
 
    def get_x(self):
        return self.x
 
    def get_y(self):
        return self.y
 
    def get_coords(self):
        return self.c
0
0 / 0 / 0
Регистрация: 19.09.2020
Сообщений: 1
19.09.2020, 20:23
У меня есть почти готовый код, я только не понимаю как реализовать сортировку и сравнение min и max при совпадении имён и координат.
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
class Point:
 
    def __init__(self, st, x, y):
        self.st = st
        self.x = x
        self.y = y
 
    def __str__(self):
        return self.st + '(' + str(self.x) + ', ' + str(self.y) + ')'
 
    def __repr__(self):
        return 'Point(' + "'" + self.st + "'" + ', ' + str(self.x) + ', ' + str(self.y) + ')'
 
    def __eq__(self, other):
        if self.st == other.st and self.x == other.x and self.y == other.y:
            return True
        return False
 
    def __ne__(self, other):
        if self.st != other.st or self.x != other.x or self.y != other.y:
            return True
        return False
 
    def __lt__(self, other):
        if self.st < other.st or self.x < other.x or self.y < other.y:
            return True
        return False
 
    def __le__(self, other):
        if self.st <= other.st and self.x <= other.x and self.y <= other.y:
            return True
        return False
 
    def __gt__(self, other):
        if self.st > other.st or self.x > other.x or self.y > other.y:
            return True
        return False
 
    def __ge__(self, other):
        if self.st >= other.st and self.x >= other.x and self.y >= other.y:
            return True
        return False
 
    def get_x(self):
        return self.x
 
    def get_y(self):
        return self.y
0
2 / 2 / 0
Регистрация: 15.09.2022
Сообщений: 5
16.09.2022, 18:22
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
from functools import total_ordering
 
 
@total_ordering
class Point:
    def __init__(self, name, x, y):
        self.name = name
        self.x = x
        self.y = y
 
    def get_x(self):
        return self.x
 
    def get_y(self):
        return self.y
 
    def get_coords(self):
        return (self.x, self.y)
 
    def __str__(self):
        return f"{self.name}({self.x}, {self.y})"
 
    def __invert__(self):
        return Point(self.name, self.y, self.x)
 
    def __repr__(self):
        return f"Point('{self.name}', {self.x}, {self.y})"
 
    def __eq__(self, other):
        if self.name != other.name:
            return self.name == other.name
        if self.x != other.x:
            return self.x == other.x
        else:
            return self.y == other.y
 
    def __lt__(self, other):
        if self.name != other.name:
            return self.name < other.name
        if self.x != other.x:
            return self.x < other.x
        else:
            return self.y < other.y
 
    def __le__(self, other):
        if self.name < other.name:
            return True
        elif self.name == other.name:
            if self.x < other.x:
                return True
            elif self.x == other.x:
                if self.y <= other.y:
                    return True
        return False
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.09.2022, 18:22
Помогаю со студенческими работами здесь

builtins.TypeError: not all arguments converted during string formatting
Всем привет, столкнулся с вышеуказанной проблемой в коде, кто объяснит почему она возникла и как её убрать - большое спасибо. marks= ...

Builtins.TypeError: '>' not supported between instances of 'list' and 'int'
Решил я написать пузырьковую сортировку. Работает так: сравниваю первый и второй элемент, если первый больше второго то их меняю и так до...

Builtins.TypeError: '>' not supported between instances of 'int' and 'str'
#Дано натуральное число. Определить его максимальную цифру. maxx = -1 number = input() for i in range(len(number)): if...

Передача стандартного Point: "невозможно преобразовать Point в Point"
привет есть клиент c# (консоль) и WCF сервис. Как передать стандартный поинт? пишет невозможно преобразовать Point в Point лол? ...

Samplers of different types point to the same texture unit
Есть фрагментный шейдер(отрывок из него): uniform sampler2D gPosition; uniform sampler2D gNormal; uniform sampler2D gAmbient; ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: показать затраченные материалы за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В качестве. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru