logo

sys.maxint a Python

En programació, maxint/INT_MAX indica el valor més alt que es pot representar amb un nombre enter. En alguns casos, durant la programació, és possible que hàgim d'assignar un valor que sigui més gran que qualsevol altre valor enter. Normalment s'assignen aquests valors manualment. Per exemple, considereu una llista de nombres enters on s'ha d'esbrinar el valor mínim amb a per bucle .

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



>

tipus de retorn en java
>

Sortida

The minimum value is -22>

En l'enfocament anterior assumim que 999999 és el valor màxim possible a la nostra llista i comparar-lo amb altres elements per actualitzar-lo quan es trobi un valor inferior.

mòdul sys en Python

Aquest mòdul s'utilitza per interactuar amb l'intèrpret i accedir a les variables que manté l'intèrpret. Es pot utilitzar per dur a terme manipulacions en l'entorn d'execució. Això s'ha d'importar com altres paquets per utilitzar-ne les funcionalitats. de Python mòdul sys proporciona una varietat de funcions i constants entre les quals la constant maxint , que es pot utilitzar per establir un valor enter positiu que es garanteix que serà més gran que qualsevol altre enter. Mireu l'exemple següent.

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

>

>

Sortida

The minimum value is -22>

Al programa anterior, en lloc d'assignar un valor més gran manualment, sys.maxint s'utilitza. Aquesta constant és compatible amb la versió 2.x de Python. El valor indicat per la constant es pot calcular com:

màxim = 231– 1 (en entorn de 32 bits)

màxim = 263– 1 (en un entorn de 64 bits)

En Python 2 , afegint 1 al maxint dóna el màxim possible llarg int i en Python 2.7 , restant 1 de maxint dóna el valor més petit possible per a un nombre enter .

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

>

canviar el nom d'una carpeta linux

>

Sortida

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

Aquesta constant es va eliminar de Python 3 , ja que els enters en aquesta versió es consideren de longitud arbitrària. Si utilitzeu aquesta constant a Python 3, obtindreu el següent error. Penseu en el mateix exemple on l'element de valor mínim s'ha de trobar d'una llista.

Python 3




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

>

>

Sortida:

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

Aquesta constant es va eliminar perquè ja no hi havia un límit per al valor dels nombres enters. En Python 3, es va introduir una constant semblant a aquesta que és sys.maxsize . Això retorna el valor enter més alt possible del tipus de variable Py_size_t i també, denota la mida del punter de la plataforma. Es considera que aquesta mida màxima limita la mida de diverses estructures de dades com cadenes i llistes. Una altra cosa a tenir en compte és que a Python 3 int i llarg int es fusionen en un. Mireu l'exemple següent per a una millor comprensió.

Python 3

pagar amb git




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

>

>

Sortida

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