sys.maxint în Python
În programare, maxint/INT_MAX denotă cea mai mare valoare care poate fi reprezentată printr-un număr întreg. În unele cazuri, în timpul programării, poate fi necesar să atribuim o valoare care este mai mare decât orice altă valoare întreagă. În mod normal se atribuie astfel de valori manual. De exemplu, luați în considerare o listă de numere întregi în care valoarea minimă trebuie găsită folosind a pentru buclă .
Piton
# 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))> |
Ieșire
The minimum value is -22
În abordarea de mai sus presupunem că 999999 este valoarea maximă posibilă din lista noastră și o comparăm cu alte elemente pentru a o actualiza atunci când se găsește o valoare mai mică decât aceasta.
modulul sys în Python
Acest modul este folosit pentru a interacționa cu interpretul și pentru a accesa variabilele menținute de interpret. Poate fi folosit pentru a efectua manipulări în mediul de rulare. Acesta trebuie importat ca și alte pachete pentru a utiliza funcționalitățile din el. Python’s modulul sys oferă o varietate de funcții și constante printre care constanta maxint , care poate fi folosit pentru a seta o valoare întreagă pozitivă care este garantată a fi mai mare decât orice alt întreg. Uită-te la exemplul de mai jos.
Piton
# 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))> |
Ieșire
The minimum value is -22
În programul de mai sus, în loc să atribuiți manual o valoare mai mare, sys.maxint este folosit. Această constantă este acceptată în versiunea Python 2.x. Valoarea indicată de constantă poate fi calculată astfel:
maxint = 2 31 – 1 (în mediu pe 32 de biți)
maxint = 2 63 – 1 (în mediu pe 64 de biți)
În Python 2 , adăugând 1 la maxint dă cel mai mare posibil lung int si in Python 2.7 , scăzând 1 din maxint dă cea mai mică valoare posibilă pentru un număr întreg .
Piton
# 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)))> |
Ieșire
maxint :9223372036854775807 - maxint - 1 :9223372036854775807 - maxint + 1 :9223372036854775807 -
Această constantă a fost eliminată din Python 3 , deoarece numerele întregi din această versiune sunt considerate a fi de lungime arbitrară. Dacă utilizați această constantă în Python 3, atunci veți obține următoarea eroare. Luați în considerare același exemplu în care elementul de valoare minimă trebuie găsit dintr-o listă.
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))> |
Ieșire:
AttributeError: module 'sys' has no attribute 'maxint'
Această constantă a fost eliminată deoarece nu mai exista o limită pentru valoarea numerelor întregi. În Python 3, a fost introdusă o constantă asemănătoare acesteia care este sys.maxsize . Aceasta returnează cea mai mare valoare întreagă posibilă de tip variabilă Py_size_t și, de asemenea, denotă dimensiunea pointerului platformei. Se consideră că această dimensiune maximă limitează dimensiunea diferitelor structuri de date, cum ar fi șiruri și liste. Un alt lucru de remarcat este că în Python 3 int și lung int sunt contopite într-una singură. Priviți exemplul de mai jos pentru o mai bună înțelegere.
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)))> |
Ieșire
maxint :9223372036854775807 - maxint - 1 :9223372036854775807 - maxint + 1 :9223372036854775807 -