Задать вопрос

С чем сравнить число в python, чтобы в результате всегда было true/false?

Решаю олимпиадную задачку по программированию. Дано множество точек. Нужно вычислить площадь наибольшего возможного четырехугольника.

Сначала я формировал список точек [(x1,y1), (x2,y2), (xn,yn)] и потом работал с ними. Но потом понял, что он не особо нужен и можно найти нужные мне точки в первом цикле, где я считываю исходные данные. К тому же максимальное количество баллов можно получить не используя массивов (после консультации было решено, что можно использовать список для хранения координат вершин четырехугольника).

Раньше я делал так:
top = points[0]
for point in points:
    if (point[0] == 0) and (point[1] > top[1]): top = [0,point[1]]


Сейчас хочу сделать вот так:
top = [*что-то*, *что-то*]
for ... :
    if (point[0] == 0) and (point[1] > top[1]): top = [0,point[1]]


Возможно есть какое-нибудь красивое решение?
  • Вопрос задан
  • 3709 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 2
sheknitrtch
@sheknitrtch
Насколько Я знаю в Python 2.x константа None всегда меньше любого числа
print None < 1024  #True
print None < 0     #True
print None < -1024 #True

Но в Python 3.x такое сравнение недопустимо, и возникнет Exception.
См. также вопрос на Stackoverflow
Ответ написан
adugin
@adugin Куратор тега Python
>>> float('inf')
inf
>>> float('-inf')
-inf
>>> -float('inf')
-inf
>>> infinity = float('inf')
>>> 42 < infinity
True
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
JRazor
@JRazor
Senior StarkOverFlow Programmer
В Python 3 можно сравнить, к примеру, так:

>>> not 1
False
>>> not 0
True


Или явно проверить ссылку на объект:
>>> 1 is None
False


Булевы значения:
>>> bool(1)
True
>>> bool(0)
False
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы