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, durante la programación, es posible que necesitemos asignar un valor mayor que cualquier otro valor entero. Normalmente uno asigna tales valores manualmente. Por ejemplo, considere una lista de enteros donde el valor mínimo se debe encontrar usando un bucle for .

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:
        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 lo comparamos con otros elementos para actualizar cuando se encuentra 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 tiempo de ejecución. Esto debe importarse como otros paquetes para utilizar las funcionalidades que contiene. El módulo sys de Python proporciona una variedad de funciones y constantes entre las que se encuentra la constante maxint , que se puede usar para establecer un valor entero positivo que se garantiza que es mayor que cualquier otro entero. Mira el ejemplo de abajo.

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:
        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, se usa sys.maxint . Esta constante es compatible con la versión 2.x de Python. El valor denotado por la constante se puede calcular como:

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

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

En Python 2 , agregar 1 al maxint da el int largo más alto posible y en Python 2.7 , restar 1 del maxint da el valor más pequeño posible para un entero .

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)))
Producción

maxint :9223372036854775807 - <type 'int'>
maxint - 1 :9223372036854775807 - <type 'int'>
maxint + 1 :9223372036854775807 - <type 'long'>

Esta constante se eliminó de Python 3 , ya que los números enteros en esta versión se consideran de 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:
        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 Python 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 también indica 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 strings y listas. Otra cosa a tener en cuenta es que, en Python 3, int y long int se fusionan en uno. 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 - <class 'int'>
maxint - 1 :9223372036854775807 - <class 'int'>
maxint + 1 :9223372036854775807 - <class 'int'>

Publicación traducida automáticamente

Artículo escrito por erakshaya485 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *