Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/64: Рейтинг темы: голосов - 64, средняя оценка - 4.55
-23 / 3 / 0
Регистрация: 08.04.2020
Сообщений: 94

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

17.09.2020, 15:58. Показов 13623. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru