sys.maxint in Python
Bij het programmeren, maxint/INT_MAX geeft de hoogste waarde aan die kan worden weergegeven door een geheel getal. In sommige gevallen moeten we tijdens het programmeren mogelijk een waarde toekennen die groter is dan welke andere gehele waarde dan ook. Normaal gesproken wijst men dergelijke waarden handmatig toe. Beschouw bijvoorbeeld een lijst met gehele getallen waarvan de minimumwaarde moet worden achterhaald met behulp van a for loop .
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))> |
Uitvoer
The minimum value is -22
In de bovenstaande benadering gaan we ervan uit dat 999999 is de maximaal mogelijke waarde in onze lijst en vergelijk deze met andere elementen om bij te werken wanneer een waarde kleiner is dan deze wordt gevonden.
sys-module in Python
Deze module wordt gebruikt voor interactie met de tolk en voor toegang tot de variabelen die door de tolk worden bijgehouden. Het kan worden gebruikt om manipulaties uit te voeren in de runtime-omgeving. Dit moet net als andere pakketten worden geïmporteerd om de functionaliteiten erin te kunnen gebruiken. Python's sys-module biedt een verscheidenheid aan functies en constanten, waaronder de constante maximaal , die kan worden gebruikt om een positief geheel getal in te stellen dat gegarandeerd groter is dan enig ander geheel getal. Kijk naar het onderstaande voorbeeld.
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))> |
Uitvoer
The minimum value is -22
In het bovenstaande programma kunt u, in plaats van handmatig een grotere waarde toe te wijzen, sys.maxint is gebruikt. Deze constante wordt ondersteund in Python versie 2.x. De waarde aangegeven door de constante kan worden berekend als:
maxint = 2 31 – 1 (in 32-bits omgeving)
maxint = 2 63 – 1 (in 64-bits omgeving)
In Python 2 , het toevoegen van 1 aan de maxint geeft het hoogst mogelijke lang int en in Python 2.7 , het aftrekken van 1 van maxint geeft de kleinst mogelijke waarde voor een geheel getal .
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)))> |
Uitvoer
maxint :9223372036854775807 - maxint - 1 :9223372036854775807 - maxint + 1 :9223372036854775807 -
Deze constante is verwijderd uit Python 3 , aangezien gehele getallen in deze versie als een willekeurige lengte worden beschouwd. Als je deze constante in Python 3 gebruikt, krijg je de volgende foutmelding. Beschouw hetzelfde voorbeeld waarbij het minimumwaarde-element uit een lijst moet worden gevonden.
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))> |
Uitgang:
AttributeError: module 'sys' has no attribute 'maxint'
Deze constante werd verwijderd omdat er niet langer een limiet bestond voor de waarde van gehele getallen. In Python 3, er werd een soortgelijke constante geïntroduceerd, namelijk sys.maxsize . Dit retourneert de hoogst mogelijke gehele waarde van het variabeletype Py_ssize_t en het geeft ook de aanwijzergrootte van het platform aan. Er wordt aangenomen dat deze maxsize de grootte van verschillende gegevensstructuren zoals tekenreeksen en lijsten beperkt. Een ander ding om op te merken is dat in Python 3 de int En lang int zijn samengevoegd tot één. Bekijk het onderstaande voorbeeld voor een beter begrip.
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)))> |
Uitvoer
maxint :9223372036854775807 - maxint - 1 :9223372036854775807 - maxint + 1 :9223372036854775807 -