Python: valores Max e Min utilizáveis

O Python 2.x permite que tipos heterogêneos sejam comparados.

Um atalho útil (no Python 2.7 aqui) é queNone compara menor que qualquer valor inteiro ou flutuante:

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

E no Python 2.7 uma tupla vazia() é um valor infinito:

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

Esse atalho é útil quando se pode classificar uma lista mista de ints e floats e desejar ter um mínimo e um máximo absolutos para referência.

Este atalho foi removido no Python 3000, no entanto (este é o Python 3.2):

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

Além disso, o Python3000foi removido sys.maxint na teoria de que todos os ints promovem a longs e o limite não se aplica mais.

PEP 326, Um caso para valores superiores e inferiores, avançou uma referência min e max em Python. O novo comportamento de ordenaçãodocumentado.

Como o PEP 326 foi rejeitado, quais são as definições úteis e úteis para um valor mínimo e máximo que trabalham com números inteiros e flutuantes e longos no Python 2X e no Python 3000?

Editar

Várias respostas estão na linha de "apenas use maxv = float ('inf')" ... A razão pela qual estou pensando, por mais remota que seja a possibilidade, é esta:

<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>

E:

<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>

Ainda:

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

Para cmp para um valor float,float('inf'), o valor longo precisaria ser convertido em float e a conversão causaria umOverflowError...

Conclusão

Obrigado a todos por suas respostas e comentários. Eu escolhi TryPyPy'sresponda porque parecia mais alinhado com o que eu estava perguntando: um absoluto maior e absoluto menos valor, como descrito na Wikipediaentrada no infinito.

Com essa pergunta, aprendi que um valor longo ou int não é convertido em float para concluir a comparação defloat('inf') > 2**5000. Eu não sabia disso.

questionAnswers(3)

yourAnswerToTheQuestion