Estou à procura de valores mínimos e máximos para inteiros em python. Por exemplo, em Java, temos Integer.MIN_VALUE
e Integer.MAX_VALUE
. Existe algo parecido com isto em python?
Em Python 3, esta pergunta não se aplica. O tipo simples int
não tem limites.
No entanto, você pode estar procurando a máquina tamanho da palavra. Isso ainda está disponível no Python 3 como sys.maxsize
.
Em Python 2, o valor máximo para valores simples de int
está disponível como sys.maxint
:
>>> sys.maxint
9223372036854775807
Você pode calcular o valor mínimo com -sys.maxint - 1
como mostrado aqui.
Python muda sem problemas de inteiros simples para inteiros longos, uma vez que você exceda este valor. Por isso, na maioria das vezes, não precisarás de o saber.
sys.maxint constante foi removida do Python 3.0 em diante, em vez disso use **sys.maxsize***
Inteiros
- PEP 237: Essencialmente, há muito renomeado para int. Ou seja, existe apenas um tipo integral embutido, chamado int; mas ele se comporta principalmente como o velho tipo longo.
- PEP 238: Uma expressão como 1/2 devolve um carro alegórico. Use 1//2 para obter o comportamento truncante. (Esta última sintaxe já existe há anos, em menos desde Python 2.2.)
- A constante sys.maxint foi removida, uma vez que não há mais um limite para o valor de inteiros. No entanto, sys.maxsize pode ser usado como uma constante número inteiro maior do que qualquer lista prática ou índice de cordas. Está em conformidade com o tamanho inteiro "natural" da implementação e é tipicamente o mesmo como o sys.maxint em versões anteriores na mesma plataforma (assumindo o mesmas opções de construção).
- A repr() de um inteiro longo já não inclui o L do trailing L, de modo que o código que desnuda incondicionalmente esse personagem irá cortar o último dígito em vez disso. (Use str() em seu lugar.)
- Octal literals não são mais da forma 0720; use 0o720 em seu lugar.
Consulte : https://docs.python.org/3/whatsnew/3.0.html
Em Python inteiros irão mudar automaticamente de uma representação de tamanho fixo int
para uma representação de largura variável long
uma vez que você passar o valor sys.maxint
, que é ou 231 - 1 ou 263 - 1, dependendo da sua plataforma. Observe o L
que é anexado aqui:
>>> 9223372036854775807
9223372036854775807
>>> 9223372036854775808
9223372036854775808L
Do manual Python:
Os números são criados por literais numéricos ou como resultado de funções e operadores incorporados. Os números inteiros sem adornos literais (incluindo números binários, hexadecimais e octais) produzem números inteiros simples, a menos que o valor que eles denotam seja muito grande para ser representado como um número inteiro simples, caso em que eles produzem um número inteiro longo. Inteiros literais com um sufixo "L" ou "l" rendem inteiros longos ("L" é preferido porque "1l" se parece muito com onze!).
Python se esforça muito para fingir que seus inteiros são inteiros matemáticos e não têm limites. Ele pode, por exemplo, calcular um googol com facilidade:
>>> 10**100
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L