Come posso assegnare il valore massimo per un intero lungo a una variabile, simile, ad esempio, a C ++ LONG_MAX.
minfunzione, se vuoi davvero programmare in Python!)
float("inf"). O meglio, usa la minfunzione incorporata.
Come posso assegnare il valore massimo per un intero lungo a una variabile, simile, ad esempio, a C ++ LONG_MAX.
minfunzione, se vuoi davvero programmare in Python!)
float("inf"). O meglio, usa la minfunzione incorporata.
Risposte:
Non esiste un limite definito in modo esplicito. La quantità di spazio degli indirizzi disponibile costituisce un limite pratico.
(Tratto da questo sito). Guarda i documenti sui tipi numerici dove lo vedrai Long integers have unlimited precision. In Python 2, gli interi passeranno automaticamente ai long quando crescono oltre il loro limite:
>>> import sys
>>> type(sys.maxsize)
<type 'int'>
>>> type(sys.maxsize+1)
<type 'long'>
per interi abbiamo
Il valore massimo di un int può essere trovato in Python 2.x con sys.maxint. È stato rimosso in Python 3, ma sys.maxsizespesso può essere utilizzato al suo posto. Dal changelog :
La costante sys.maxint è stata rimossa, poiché non esiste più un limite al valore degli interi. Tuttavia, sys.maxsize può essere utilizzato come numero intero più grande di qualsiasi elenco pratico o indice di stringa. È conforme alla dimensione intera "naturale" dell'implementazione ed è tipicamente uguale a sys.maxint nelle versioni precedenti sulla stessa piattaforma (assumendo le stesse opzioni di compilazione).
e, per chiunque sia interessato alla differenza (Python 2.x):
sys.maxint Il più grande numero intero positivo supportato dal normale tipo intero di Python. Questo è almeno 2 ** 31-1. Il numero intero negativo più grande è -maxint-1 - l'asimmetria risulta dall'uso dell'aritmetica binaria del complemento di 2.
sys.maxsize Il numero intero positivo più grande supportato dal tipo Py_ssize_t della piattaforma, e quindi la dimensione massima consentita per elenchi, stringhe, dict e molti altri contenitori.
e per completezza, ecco la versione di Python 3 :
sys.maxsize Un numero intero che fornisce il valore massimo che una variabile di tipo Py_ssize_t può assumere. Di solito è 2 ^ 31 - 1 su una piattaforma a 32 bit e 2 ^ 63 - 1 su una piattaforma a 64 bit.
C'è float("inf")e float("-inf"). Questi possono essere confrontati con altri tipi numerici:
>>> import sys
>>> float("inf") > sys.maxsize
True
Python longpuò essere arbitrariamente grande. Se hai bisogno di un valore maggiore di qualsiasi altro valore, puoi usarlo float('inf'), poiché Python non ha problemi a confrontare valori numerici di diversi tipi. Allo stesso modo, per un valore inferiore a qualsiasi altro valore, puoi utilizzare float('-inf').
I numeri interi hanno dimensioni illimitate e non hanno un valore massimo in Python.
Secondo il tuo commento su ciò che stai cercando di fare, stai attualmente pensando qualcosa sulla falsariga di
minval = MAXINT;
for (i = 1; i < num_elems; i++)
if a[i] < a[i-1]
minval = a[i];
Non è così che si pensa in Python. Una traduzione migliore in Python (ma ancora non la migliore) sarebbe
minval = a[0] # Just use the first value
for i in range(1, len(a)):
minval = min(a[i], a[i - 1])
Nota che quanto sopra non usa affatto MAXINT. Quella parte della soluzione si applica a qualsiasi linguaggio di programmazione: non è necessario conoscere il valore più alto possibile solo per trovare il valore più piccolo in una raccolta.
Ma comunque, quello che fai veramente in Python è solo
minval = min(a)
Cioè, non scrivi affatto un ciclo. La min()funzione incorporata ottiene il minimo dell'intera raccolta.
longil tipo in Python 2.x utilizza aritmetica di precisione arbitraria e non ha nulla come il valore massimo possibile. È limitato dalla memoria disponibile. Python 3.x non ha un tipo speciale per i valori che non possono essere rappresentati dall'intero della macchina nativa: tutto è inte la conversione viene gestita dietro le quinte.
A differenza di C / C ++ Long in Python hanno una precisione illimitata. Fare riferimento alla sezione Tipi numerici in python per maggiori informazioni. Per determinare il valore massimo dell'intero puoi semplicemente fare riferimento sys.maxint. Puoi ottenere maggiori dettagli dalla documentazione di sys .
In python3, puoi inviare il valore float nella funzione int ottenendo quel numero 1.7976931348623157e + 308 in rappresentazione intera.
import sys
int(sys.float_info.max)