sys.maxint in Python
Nella programmazione, maxint/INT_MAX denota il valore più alto che può essere rappresentato da un numero intero. In alcuni casi, durante la programmazione, potrebbe essere necessario assegnare un valore maggiore di qualsiasi altro valore intero. Normalmente si assegnano tali valori manualmente. Ad esempio, considera un elenco di numeri interi in cui il valore minimo deve essere trovato utilizzando a per ciclo .
Pitone
# initializing the list> li> => [> 1> ,> -> 22> ,> 43> ,> 89> ,> 2> ,> 6> ,> 3> ,> 16> ]> > # assigning a larger value manually> curr_min> => 999999> > # loop to find minimum value> for> i> in> range> (> 0> ,> len> (li)):> > > # update curr_min if a value lesser than it is found> > if> li[i] curr_min = li[i] print('The minimum value is ' + str(curr_min))> |
Produzione
The minimum value is -22
Nell'approccio di cui sopra lo assumiamo 999999 è il valore massimo possibile nel nostro elenco e confrontalo con altri elementi per aggiornare quando viene trovato un valore inferiore a quello indicato.
sys in Python
Questo modulo viene utilizzato per interagire con l'interprete e per accedere alle variabili gestite dall'interprete. Può essere utilizzato per eseguire manipolazioni nell'ambiente runtime. Questo deve essere importato come altri pacchetti per utilizzare le funzionalità in esso contenute. Di Python modulo sys fornisce una varietà di funzioni e costanti tra cui la costante maxint , che può essere utilizzato per impostare un valore intero positivo che è garantito essere maggiore di qualsiasi altro numero intero. Guarda l'esempio qui sotto.
Pitone
# import the module> import> sys> > # initializing the list> li> => [> 1> ,> -> 22> ,> 43> ,> 89> ,> 2> ,> 6> ,> 3> ,> 16> ]> > # assigning a larger value with> # maxint constant> curr_min> => sys.maxint> > # loop to find minimum value> for> i> in> range> (> 0> ,> len> (li)):> > > # update curr_min if a value lesser> > # than it is found> > if> li[i] curr_min = li[i] print('The minimum value is ' + str(curr_min))> |
Produzione
The minimum value is -22
Nel programma sopra, invece di assegnare manualmente un valore maggiore, sys.maxint si usa. Questa costante è supportata nella versione Python 2.x. Il valore indicato dalla costante può essere calcolato come:
massimo = 2 31 – 1 (in ambiente a 32 bit)
massimo = 2 63 – 1 (in ambiente a 64 bit)
In Pitone 2 , aggiungendo 1 al massimo si ottiene il valore più alto possibile lungo int e dentro Pitone 2.7 , sottraendo 1 da maxint si ottiene il valore più piccolo possibile per un numero intero .
Pitone
# import the module> import> sys> > max_int> => sys.maxint> min_int> => sys.maxint> -> 1> long_int> => sys.maxint> +> 1> > print> (> 'maxint :'> +> str> (max_int)> +> ' - '> +> str> (> type> (max_int)))> print> (> 'maxint - 1 :'> +> str> (max_int)> +> ' - '> +> str> (> type> (min_int)))> print> (> 'maxint + 1 :'> +> str> (max_int)> +> ' - '> +> str> (> type> (long_int)))> |
Produzione
maxint :9223372036854775807 - maxint - 1 :9223372036854775807 - maxint + 1 :9223372036854775807 -
Questa costante è stata rimossa da Pitone 3 , poiché i numeri interi in questa versione sono considerati di lunghezza arbitraria. Se usi questa costante in Python 3, otterrai il seguente errore. Considera lo stesso esempio in cui l'elemento con valore minimo deve essere trovato da un elenco.
Python3
import> sys> > # initializing the list> li> => [> 1> ,> -> 22> ,> 43> ,> 89> ,> 2> ,> 6> ,> 3> ,> 16> ]> > # assigning a larger value with maxint constant> curr_min> => sys.maxint> > # loop to find minimum value> for> i> in> range> (> 0> ,> len> (li)):> > > # update curr_min if a value lesser than it is found> > if> li[i] curr_min = li[i] print('The minimum value is ' + str(curr_min))> |
Produzione :
AttributeError: module 'sys' has no attribute 'maxint'
Questa costante è stata rimossa poiché non esisteva più un limite al valore dei numeri interi. In Pitone 3, è stata introdotta una costante simile a questa che è sys.maxsize . Ciò restituisce il valore intero più alto possibile di tipo variabile Py_ssize_t e inoltre denota la dimensione del puntatore della piattaforma. Si ritiene che questa dimensione massima limiti la dimensione di varie strutture dati come stringhe ed elenchi. Un'altra cosa da notare è che, in Python 3, il file int E lungo int sono fusi in uno solo. Guarda l'esempio qui sotto per una migliore comprensione.
Python3
# import the module> import> sys> > # using sys.maxsize> max_int> => sys.maxsize> min_int> => sys.maxsize> -> 1> long_int> => sys.maxsize> +> 1> > print> (> 'maxint :'> +> str> (max_int)> +> ' - '> +> str> (> type> (max_int)))> print> (> 'maxint - 1 :'> +> str> (max_int)> +> ' - '> +> str> (> type> (min_int)))> > # the data type is represented as int> print> (> 'maxint + 1 :'> +> str> (max_int)> +> ' - '> +> str> (> type> (long_int)))> |
Produzione
maxint :9223372036854775807 - maxint - 1 :9223372036854775807 - maxint + 1 :9223372036854775807 -