sys.maxint Python
Programavime, maxint/INT_MAX žymi didžiausią reikšmę, kurią galima pavaizduoti sveikuoju skaičiumi. Kai kuriais atvejais programuojant mums gali tekti priskirti reikšmę, kuri yra didesnė už bet kurią kitą sveikojo skaičiaus reikšmę. Paprastai tokios reikšmės priskiriamos rankiniu būdu. Pavyzdžiui, apsvarstykite sveikųjų skaičių sąrašą, kuriame mažiausią reikšmę reikia sužinoti naudojant a už kilpą .
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))> |
Išvestis
The minimum value is -22
Aukščiau pateiktame požiūryje mes manome, kad 999999 yra didžiausia galima reikšmė mūsų sąraše ir palyginkite ją su kitais elementais, kad atnaujintumėte, kai randama mažesnė už ją reikšmė.
sys modulis Python
Šis modulis naudojamas bendrauti su vertėju ir pasiekti vertėjo palaikomus kintamuosius. Jis gali būti naudojamas atliekant manipuliacijas vykdymo aplinkoje. Tai turi būti importuota kaip ir kiti paketai, kad būtų galima naudotis jame esančiomis funkcijomis. Python's sys modulis suteikia įvairių funkcijų ir konstantų, tarp kurių yra konstanta maxint , kurį galima naudoti norint nustatyti teigiamą sveikojo skaičiaus reikšmę, kuri garantuotai bus didesnė už bet kurį kitą sveikąjį skaičių. Pažvelkite į toliau pateiktą pavyzdį.
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))> |
Išvestis
The minimum value is -22
Aukščiau pateiktoje programoje užuot priskyrę didesnę reikšmę rankiniu būdu, sys.maxint yra naudojamas. Ši konstanta palaikoma Python 2.x versijoje. Konstanta žymima reikšmė gali būti apskaičiuojama taip:
maxint = 2 31 – 1 (32 bitų aplinkoje)
maxint = 2 63 – 1 (64 bitų aplinkoje)
Į Python 2 , prie maxinto pridėjus 1, gaunama didžiausia įmanoma ilgas tarpt ir į Python 2.7 , atėmus 1 iš maxint, gaunama mažiausia įmanoma sveikojo skaičiaus reikšmė .
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)))> |
Išvestis
maxint :9223372036854775807 - maxint - 1 :9223372036854775807 - maxint + 1 :9223372036854775807 -
Ši konstanta buvo pašalinta iš Python 3 , nes šioje versijoje sveikieji skaičiai laikomi savavališko ilgio. Jei naudosite šią konstantą Python 3, gausite šią klaidą. Apsvarstykite tą patį pavyzdį, kai minimalios vertės elementas turi būti nustatytas iš sąrašo.
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))> |
Išvestis:
AttributeError: module 'sys' has no attribute 'maxint'
Ši konstanta buvo pašalinta, nes nebėra sveikųjų skaičių ribos. Į Python 3, buvo įvesta panaši į šią konstanta, kuri yra sys.maxsize . Tai grąžina didžiausią įmanomą kintamojo tipo sveikąjį skaičių Py_ssize_t ir taip pat, tai žymi platformos žymeklio dydį. Manoma, kad šis maksimalus dydis riboja įvairių duomenų struktūrų, pvz., eilučių ir sąrašų, dydį. Kitas dalykas, į kurį reikia atkreipti dėmesį, yra tai, kad Python 3 tarpt ir ilgas tarpt yra sujungti į vieną. Norėdami geriau suprasti, žiūrėkite toliau pateiktą pavyzdį.
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)))> |
Išvestis
maxint :9223372036854775807 - maxint - 1 :9223372036854775807 - maxint + 1 :9223372036854775807 -