I programmering, maxint/INT_MAX anger det högsta värdet som kan representeras av ett heltal. I vissa fall, under programmering, kan vi behöva tilldela ett värde som är större än något annat heltalsvärde. Normalt tilldelar man sådana värden manuellt. Tänk till exempel på en lista med heltal där minimivärdet måste hittas med hjälp av a för slinga .
Pytonorm
# 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))> |
>
>Produktion
The minimum value is -22>
I tillvägagångssättet ovan antar vi det 999999 är det högsta möjliga värdet i vår lista och jämför det med andra element för att uppdatera när ett värde som är lägre än det hittas.
sys-modul i Python
Denna modul används för att interagera med tolken och för att komma åt de variabler som underhålls av tolken. Den kan användas för att utföra manipulationer i runtime-miljön. Detta måste importeras som andra paket för att kunna använda funktionerna i det. Python sys-modul tillhandahåller en mängd olika funktioner och konstanter, bland annat konstanten maxint , som kan användas för att ställa in ett positivt heltalsvärde som garanterat är större än något annat heltal. Titta på exemplet nedan.
Pytonorm
# 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))> |
c# lista
>
>Produktion
The minimum value is -22>
I programmet ovan, istället för att tilldela ett större värde manuellt, sys.maxint är använd. Denna konstant stöds i Python version 2.x. Värdet som anges av konstanten kan beräknas som:
maxint = 231– 1 (i 32-bitars miljö)
maxint = 263– 1 (i 64-bitars miljö)
I Python 2 , att lägga till 1 till maxint ger högsta möjliga lång int och i Python 2.7 , subtrahera 1 från maxint ger minsta möjliga värde för ett heltal .
Pytonorm
# 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)))> |
array slicing java
>
>Produktion
maxint :9223372036854775807 - maxint - 1 :9223372036854775807 - maxint + 1 :9223372036854775807 ->
Denna konstant togs bort från Python 3 , eftersom heltal i denna version anses vara av godtycklig längd. Om du använder denna konstant i Python 3 kommer du att få följande fel. Betrakta samma exempel där minimivärdeselementet måste hittas från en lista.
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))> |
>
>
Utgång:
AttributeError: module 'sys' has no attribute 'maxint'>
Denna konstant togs bort eftersom det inte längre fanns någon gräns för värdet på heltal. I Python 3, en konstant liknande denna infördes som är sys.maxsize . Detta returnerar det högsta möjliga heltalsvärdet av variabeltypen Py_ssize_t och även anger den pekarens storlek på plattformen. Denna maxstorlek anses begränsa storleken på olika datastrukturer som strängar och listor. En annan sak att notera är att i Python 3 int och lång int slås samman till en. Titta på exemplet nedan för bättre förstå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)))> |
>
>Produktion
maxint :9223372036854775807 - maxint - 1 :9223372036854775807 - maxint + 1 :9223372036854775807 ->