Open In App

sys.maxint in Python

Last Updated : 01 Oct, 2020
Improve
Improve
Like Article
Like
Save
Share
Report

In programming, maxint/INT_MAX denotes the highest value that can be represented by an integer. In some cases, while programming, we may need to assign a value that is larger than any other integer value. Normally one assigns such values manually. For example, consider a list of integers where the minimum value has to be found out using a for loop.

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


Output

The minimum value is -22

In the approach above we assume that 999999 is the maximum possible value in our list and compare it with other elements to update when a value lesser than it is found. 

sys module in Python

This module is used to interact with the interpreter and to access the variables maintained by the interpreter. It can be used to carry out manipulations in the runtime environment. This has to be imported like other packages to utilize the functionalities in it. Python’s sys module provides a variety of functions and constants among which the constant maxint, which can be used to set a positive integer value which is guaranteed to be larger than any other integer. Look at the example below.

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


Output

The minimum value is -22

In the program above, instead of assigning a larger value manually, sys.maxint is used. This constant is supported in Python version 2.x. The value denoted by the constant can be calculated as :

maxint = 231 – 1 (in 32-bit environment)

maxint = 263 – 1 (in 64-bit environment)

In Python 2, adding 1 to the maxint gives the highest possible long int and in Python 2.7, subtracting 1 from maxint gives the smallest possible value for an integer.

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


Output

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

This constant was removed from Python 3, as integers in this version are considered to be of arbitrary length. If you use this constant in Python 3, then you will get the following error. Consider the same example where the minimum value element has to be found out from a 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:
        curr_min = li[i]
  
print("The minimum value is " + str(curr_min))


Output :

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

This constant was removed as there was no longer a limit for to the value of integers. In Python 3, a constant similar to this was introduced which is sys.maxsize. This returns the highest possible integer value of variable type Py_ssize_t and also, it denotes the pointer size of the platform. This maxsize is considered to limit the size of various data structures like Strings and lists. Another thing to be noted is, in Python 3 the int and long int are merged into one. Look at the example below for better understanding.

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


Output

maxint :9223372036854775807 - <class 'int'>
maxint - 1 :9223372036854775807 - <class 'int'>
maxint + 1 :9223372036854775807 - <class 'int'>


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads