I’ve been trying to find out how to represent a maximum integer, and I’ve read to use "sys.maxint". However, in Python 3 when I call it I get:
AttributeError: module 'object' has no attribute 'maxint'
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
The sys.maxint constant was removed, since there is no longer a limit
to the value of integers. However, sys.maxsize can be used as an
integer larger than any practical list or string index. It conforms to
the implementation’s “natural” integer size and is typically the same
as sys.maxint in previous releases on the same platform (assuming the
same build options).
http://docs.python.org/3.1/whatsnew/3.0.html#integers
Method 2
As pointed out by others, Python 3’s int does not have a maximum size, but if you just need something that’s guaranteed to be higher than any other int value, then you can use the float value for Infinity, which you can get with float("inf").
Note: as per ely’s comment, this may impact the efficiency of your code, so it may not be the best solution.
Method 3
If you are looking for a number that is bigger than all others:
Method 1:
float('inf')
Method 2:
import sys max = sys.maxsize
If you are looking for a number that is smaller than all others:
Method 1:
float('-inf')
Method 2:
import sys min = -sys.maxsize - 1
Method 1 works in both Python2 and Python3. Method 2 works in Python3. I have not tried Method 2 in Python2.
Method 4
Python 3 ints do not have a maximum.
If your purpose is to determine the maximum size of an int in C when compiled the same way Python was, you can use the struct module to find out:
>>> import struct
>>> platform_c_maxint = 2 ** (struct.Struct('i').size * 8 - 1) - 1
If you are curious about the internal implementation details of Python 3 int objects, Look at sys.int_info for bits per digit and digit size details. No normal program should care about these.
Method 5
Python 3.0 doesn’t have sys.maxint any more since Python 3’s ints are of
arbitrary length. Instead of sys.maxint it has sys.maxsize; the maximum
size of a positive sized size_t aka Py_ssize_t.
Method 6
An alternative is
import math
... math.inf ...
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0