Respostas:
A constante sys.maxint foi removida, pois não há mais um limite para o valor de números inteiros. No entanto, sys.maxsize pode ser usado como um número inteiro maior que qualquer lista prática ou índice de cadeias. Ele está de acordo com o tamanho inteiro "natural" da implementação e normalmente é o mesmo que sys.maxint em releases anteriores na mesma plataforma (assumindo as mesmas opções de compilação).
Conforme apontado por outros, o Python 3 int
não tem um tamanho máximo, mas se você precisar de algo com garantia de ser mais alto do que qualquer outro int
valor, poderá usar o valor flutuante para o Infinity, com o qual poderá obter float("inf")
.
Python 3 ints não tem um máximo.
Se seu objetivo é determinar o tamanho máximo de um int em C quando compilado da mesma forma que o Python, você pode usar o módulo struct para descobrir:
>>> import struct
>>> platform_c_maxint = 2 ** (struct.Struct('i').size * 8 - 1) - 1
Se você estiver curioso sobre os detalhes de implementação interna dos objetos int do Python 3, procure sys.int_info
por bits por dígito e detalhes de tamanho de dígito. Nenhum programa normal deve se preocupar com isso.
Se você estiver procurando por um número maior que todos os outros:
Método 1:
float('inf')
Método 2:
import sys
max = sys.maxsize
Se você estiver procurando por um número menor que todos os outros:
Método 1:
float('-inf')
Método 2:
import sys
min = -sys.maxsize - 1
O método 1 funciona no Python2 e no Python3. O método 2 funciona em Python3. Eu não tentei o método 2 no Python2.
O Python 3.0 não possui mais o sys.maxint, já que as entradas do Python 3 são arbitrárias. Em vez de sys.maxint, ele possui sys.maxsize; o tamanho máximo de um tamanho positivo size_t aka Py_ssize_t.
Uma alternativa é
import math
... math.inf ...