logo

sys.maxint v Pythone

V programovaní, maxint/INT_MAX označuje najvyššiu hodnotu, ktorá môže byť vyjadrená celým číslom. V niektorých prípadoch pri programovaní možno budeme musieť priradiť hodnotu, ktorá je väčšia ako akákoľvek iná celočíselná hodnota. Bežne sa takéto hodnoty priraďujú manuálne. Zoberme si napríklad zoznam celých čísel, kde je potrebné zistiť minimálnu hodnotu pomocou a pre slučku .

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))>

má ďalšiu javu
>

>

Výkon

The minimum value is -22>

Vo vyššie uvedenom prístupe to predpokladáme 999999 je maximálna možná hodnota v našom zozname a porovnajte ju s inými prvkami, aby sa aktualizovala, keď sa nájde hodnota nižšia ako je.

sys modul v Pythone

Tento modul sa používa na interakciu s tlmočníkom a na prístup k premenným udržiavaným tlmočníkom. Môže byť použitý na vykonávanie manipulácií v runtime prostredí. Aby ste mohli využívať funkcie v ňom, musíte ho importovať ako ostatné balíky. Python's sys modul poskytuje množstvo funkcií a konštánt, medzi ktoré patrí konštanta maxint , ktorý možno použiť na nastavenie kladného celého čísla, ktoré je zaručene väčšie ako akékoľvek iné celé číslo. Pozrite si príklad nižšie.

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))>

>

>

Výkon

The minimum value is -22>

Vo vyššie uvedenom programe namiesto manuálneho priradenia väčšej hodnoty sys.maxint sa používa. Táto konštanta je podporovaná v Pythone verzie 2.x. Hodnotu označenú konštantou možno vypočítať ako:

maxint = 231– 1 (v 32-bitovom prostredí)

maxint = 263– 1 (v 64-bitovom prostredí)

c kód pole reťazcov

In Python 2 , pridanie 1 k maxintu dáva najvyššiu možnú hodnotu dlhá int a v Python 2.7 , odpočítaním 1 od maxint dostaneme najmenšia možná hodnota pre celé číslo .

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)))>

>

>

Výkon

maxint :9223372036854775807 - maxint - 1 :9223372036854775807 - maxint + 1 :9223372036854775807 ->

Táto konštanta bola odstránená z Python 3 , keďže celé čísla sa v tejto verzii považujú za ľubovoľnú dĺžku. Ak použijete túto konštantu v Pythone 3, dostanete nasledujúcu chybu. Uvažujme o tom istom príklade, kde sa prvok minimálnej hodnoty musí zistiť zo zoznamu.

Python3


avl rotácia stromu



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))>

>

>

Výkon :

AttributeError: module 'sys' has no attribute 'maxint'>

Táto konštanta bola odstránená, pretože už neexistoval limit pre hodnotu celých čísel. In Python 3, bola zavedená konštanta podobná tejto, ktorá je sys.maxsize . Toto vráti najvyššiu možnú celočíselnú hodnotu typu premennej Py_ssize_t a tiež označuje veľkosť ukazovateľa platformy. Táto maximálna veľkosť sa považuje za obmedzenie veľkosti rôznych dátových štruktúr, ako sú reťazce a zoznamy. Ďalšia vec, ktorú treba poznamenať, je v Pythone 3 int a dlhá int sú zlúčené do jedného. Pre lepšie pochopenie si pozrite príklad nižšie.

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)))>

>

napíšte json do súboru python
>

Výkon

maxint :9223372036854775807 - maxint - 1 :9223372036854775807 - maxint + 1 :9223372036854775807 ->