sys.maxint i Python
I programmering, maxint/INT_MAX angir den høyeste verdien som kan representeres av et heltall. I noen tilfeller, mens vi programmerer, må vi kanskje tilordne en verdi som er større enn noen annen heltallsverdi. Normalt tildeler man slike verdier manuelt. Tenk for eksempel på en liste over heltall der minimumsverdien må finnes ut ved å bruke a for løkke .
Python
# 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))> |
Produksjon
The minimum value is -22
I tilnærmingen ovenfor antar vi det 999999 er den maksimalt mulige verdien i listen vår og sammenligne den med andre elementer for å oppdatere når en verdi som er lavere enn den er funnet.
sys-modul i Python
Denne modulen brukes til å samhandle med tolken og for å få tilgang til variablene som vedlikeholdes av tolken. Den kan brukes til å utføre manipulasjoner i kjøretidsmiljøet. Denne må importeres som andre pakker for å utnytte funksjonaliteten i den. Python sys-modul gir en rekke funksjoner og konstanter, blant annet konstanten maxint , som kan brukes til å angi en positiv heltallsverdi som garantert er større enn noe annet heltall. Se på eksemplet nedenfor.
Python
# 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))> |
Produksjon
The minimum value is -22
I programmet ovenfor, i stedet for å tildele en større verdi manuelt, sys.maxint benyttes. Denne konstanten støttes i Python versjon 2.x. Verdien angitt av konstanten kan beregnes som:
maxint = 2 31 – 1 (i 32-biters miljø)
maxint = 2 63 – 1 (i 64-biters miljø)
I Python 2 , å legge til 1 til maxint gir høyest mulig lang int og i Python 2.7 , subtrahere 1 fra maxint gir minste mulige verdi for et heltall .
Python
# 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)))> |
Produksjon
maxint :9223372036854775807 - maxint - 1 :9223372036854775807 - maxint + 1 :9223372036854775807 -
Denne konstanten ble fjernet fra Python 3 , da heltall i denne versjonen anses å være av vilkårlig lengde. Hvis du bruker denne konstanten i Python 3, vil du få følgende feil. Tenk på det samme eksempelet der minimumsverdielementet må finnes fra en liste.
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))> |
Utgang:
AttributeError: module 'sys' has no attribute 'maxint'
Denne konstanten ble fjernet da det ikke lenger var noen grense for verdien av heltall. I Python 3, en konstant lik denne ble introdusert som er sys.maxsize . Dette returnerer den høyest mulige heltallsverdien av variabeltypen Py_ssize_t og også, det angir pekerstørrelsen til plattformen. Denne maksstørrelsen anses å begrense størrelsen på ulike datastrukturer som strenger og lister. En annen ting å merke seg er, i Python 3 int og lang int slås sammen til ett. Se på eksemplet nedenfor for bedre forståelse.
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)))> |
Produksjon
maxint :9223372036854775807 - maxint - 1 :9223372036854775807 - maxint + 1 :9223372036854775807 -