Como posso atribuir o valor máximo de um inteiro longo a uma variável, semelhante, por exemplo, a C ++ LONG_MAX.
minfunção, se você realmente deseja programar em Python!)
float("inf"),. Ou melhor, use a minfunção embutida.
Como posso atribuir o valor máximo de um inteiro longo a uma variável, semelhante, por exemplo, a C ++ LONG_MAX.
minfunção, se você realmente deseja programar em Python!)
float("inf"),. Ou melhor, use a minfunção embutida.
Respostas:
Não há limite definido explicitamente. A quantidade de espaço de endereço disponível constitui um limite prático.
(Retirado deste site). Veja os documentos sobre Tipos numéricos onde você verá isso Long integers have unlimited precision. No Python 2, os números inteiros mudam automaticamente para longos quando crescem além de seu limite:
>>> import sys
>>> type(sys.maxsize)
<type 'int'>
>>> type(sys.maxsize+1)
<type 'long'>
para inteiros nós temos
O valor máximo de um int pode ser encontrado no Python 2.x com sys.maxint. Ele foi removido no Python 3, mas sys.maxsizegeralmente pode ser usado em seu lugar. Do changelog :
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 um número inteiro maior do que qualquer lista prática ou índice de string. Ele está em conformidade com o tamanho inteiro “natural” da implementação e é normalmente o mesmo que sys.maxint em versões anteriores na mesma plataforma (assumindo as mesmas opções de construção).
e, para qualquer pessoa interessada na diferença (Python 2.x):
sys.maxint O maior inteiro positivo suportado pelo tipo de inteiro regular do Python. Isso é pelo menos 2 ** 31-1. O maior inteiro negativo é -maxint-1 - a assimetria resulta do uso da aritmética binária do complemento de 2.
sys.maxsize O maior inteiro positivo suportado pelo tipo Py_ssize_t da plataforma e, portanto, o tamanho máximo que listas, strings, dicts e muitos outros contêineres podem ter.
e para completar, aqui está a versão Python 3 :
sys.maxsize Um inteiro que fornece o valor máximo que uma variável do tipo Py_ssize_t pode assumir. Geralmente é 2 ^ 31-1 em uma plataforma de 32 bits e 2 ^ 63-1 em uma plataforma de 64 bits.
Existe float("inf")e float("-inf"). Eles podem ser comparados a outros tipos numéricos:
>>> import sys
>>> float("inf") > sys.maxsize
True
Python longpode ser arbitrariamente grande. Se precisar de um valor maior do que qualquer outro valor, você pode usar float('inf'), pois o Python não tem problemas para comparar valores numéricos de diferentes tipos. Da mesma forma, para um valor menor do que qualquer outro valor, você pode usar float('-inf').
Os inteiros são ilimitados em tamanho e não têm valor máximo em Python.
De acordo com o seu comentário sobre o que está tentando fazer, você está pensando em algo na linha de
minval = MAXINT;
for (i = 1; i < num_elems; i++)
if a[i] < a[i-1]
minval = a[i];
Não é assim que se pensa em Python. Uma tradução melhor para Python (mas ainda não a melhor) seria
minval = a[0] # Just use the first value
for i in range(1, len(a)):
minval = min(a[i], a[i - 1])
Observe que o acima não usa MAXINT. Essa parte da solução se aplica a qualquer linguagem de programação: você não precisa saber o maior valor possível apenas para encontrar o menor valor em uma coleção.
Mas de qualquer forma, o que você realmente faz em Python é apenas
minval = min(a)
Ou seja, você não escreve um loop. A min()função integrada obtém o mínimo de toda a coleção.
longtipo em Python 2.x usa aritmética de precisão arbitrária e não tem valor máximo possível. É limitado pela memória disponível. Python 3.x não tem nenhum tipo especial para valores que não podem ser representados pelo número inteiro nativo da máquina - tudo é inte a conversão é tratada nos bastidores.
Ao contrário de C / C ++, Long em Python tem precisão ilimitada. Consulte a seção Tipos numéricos em python para obter mais informações. Para determinar o valor máximo do inteiro, você pode apenas consultar sys.maxint. Você pode obter mais detalhes na documentação do sys .
Em python3, você pode enviar o valor float para a função int e obter esse número 1,7976931348623157e + 308 na representação inteira.
import sys
int(sys.float_info.max)