Python: используемые максимальные и минимальные значения

Python 2.x позволяет сравнивать разнородные типы.

Полезный ярлык (в Python 2.7 здесь) заключается в том, чтоNone сравнивает меньшее, чем любое целое число или значение с плавающей точкой:

<code>>>> None < float('-inf') < -sys.maxint * 2l < -sys.maxint
True
</code>

А в Python 2.7 пустой кортеж() это бесконечное значение:

<code>>>> () > float('inf') > sys.maxint
True
</code>

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

Этот ярлык был удален в Python 3000, однако (это Python 3.2):

<code>>>> None < 0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: NoneType() < int()
</code>

Кроме того, Python3000удалил sys.maxint на теории, что все целые числа продвигаются к длинным, и предел больше не применяется.

ОПТОСОЗ 326Случай для верхних и нижних значений, расширенный ссылочный мин и макс в Python. Новое поведение при заказедокументированный.

Так как PEP 326 был отклонен, какие полезные, пригодные для использования определения для минимального и максимального значений, которые работают с целыми числами и числами с плавающей запятой и длинными в Python 2X и Python 3000?

Edit

Несколько ответов совпадают с «просто используйте maxv = float (» inf ») ... Причина, по которой я думаю, какой бы отдаленной ни была возможность, заключается в следующем:

<code>>>> float(2**5000)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: long int too large to convert to float 
</code>

А также:

<code>>>> cmp(1.0**4999,10.0**5000)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: (34, 'Result too large')
</code>

Еще:

<code>>>> () > 2**5000
True
</code>

Для того, чтобы cmp к значению с плавающей точкой,float('inf')длинное значение должно быть преобразовано в число с плавающей точкой, и преобразование вызоветOverflowError...

Conclusion

Спасибо всем за ваши ответы и комментарии. Я выбрал TryPyPyответ потому что это казалось наиболее совпадающим с тем, что я спрашивал: абсолютное наибольшее и абсолютное наименьшее значение, как описано в Википедиивход на бесконечность.

С помощью этого вопроса я узнал, что значение long или int не преобразуется в число с плавающей точкой, чтобы завершить сравнениеfloat('inf') > 2**5000, Я не знал этого.

Ответы на вопрос(3)

Ваш ответ на вопрос