sys.maxint en Python

En programación, maxint/INT_MAX denota el valor más alto que puede ser representado por un número entero. En algunos casos, mientras programamos, es posible que necesitemos asignar un valor que sea mayor que cualquier otro valor entero. Normalmente se asignan dichos valores manualmente. Por ejemplo, considere una lista de números enteros donde el valor mínimo debe averiguarse usando un en bucle .

Pitón




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

Producción

The minimum value is -22 

En el enfoque anterior asumimos que 999999 es el valor máximo posible en nuestra lista y compararlo con otros elementos para actualizar cuando se encuentre un valor menor que este.

módulo sys en Python

Este módulo se utiliza para interactuar con el intérprete y acceder a las variables mantenidas por el intérprete. Se puede utilizar para realizar manipulaciones en el entorno de ejecución. Esto debe importarse como otros paquetes para utilizar sus funcionalidades. pitón módulo del sistema proporciona una variedad de funciones y constantes entre las cuales la constante maxinte , que se puede utilizar para establecer un valor entero positivo que se garantiza que será mayor que cualquier otro número entero. Mira el ejemplo de abajo.

Pitón




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

Producción

The minimum value is -22 

En el programa anterior, en lugar de asignar un valor mayor manualmente, sistema.maxint se utiliza. Esta constante es compatible con la versión 2.x de Python. El valor denotado por la constante se puede calcular como:

maxinte = 2 31 – 1 (en entorno de 32 bits)

maxinte = 2 63 – 1 (en entorno de 64 bits)

En Pitón 2 , sumar 1 al maxint da el mayor valor posible largo int y en Pitón 2.7 , restando 1 de maxint da el valor más pequeño posible para un número entero .

Pitón




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

Producción

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

Esta constante fue eliminada de Pitón 3 , ya que en esta versión se considera que los números enteros tienen una longitud arbitraria. Si usa esta constante en Python 3, obtendrá el siguiente error. Considere el mismo ejemplo en el que el elemento de valor mínimo debe encontrarse en una 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))>

Producción :

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

Esta constante se eliminó porque ya no había un límite para el valor de los números enteros. En pitón 3, Se introdujo una constante similar a esta que es sys.maxsize . Esto devuelve el valor entero más alto posible del tipo de variable. Py_ssize_t y además, denota el tamaño del puntero de la plataforma. Se considera que este tamaño máximo limita el tamaño de varias estructuras de datos como cadenas y listas. Otra cosa a tener en cuenta es que, en Python 3, el En t y largo int se fusionan en uno solo. Mire el siguiente ejemplo para una mejor comprensión.

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

Producción

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