Python整数范围

在Python中,有没有办法获得可以使用的最大整数? 是否有像INT_MAX这样的预定义常量?

Python有任意的精度整数,所以没有真正的固定的最大值。 你只受可用内存的限制。

在Python 2中,有两种types, intlongint s使用Ctypes,而long s是任意的精度。 你可以使用sys.maxint来find最大的int 。 但是int会自动提升为long ,所以你通常不需要担心:

 sys.maxint + 1 

工作正常,并返回一个long

sys.maxint甚至不存在于Python 3中,因为intlong被统一为一个任意的精度inttypes。

 import re import sys import platform import struct formats = { "int":{"p_type":"integer", "format":"i"}, "float":{"p_type":"float", "format":"f"}, "double":{"p_type":"float", "format":"d"} } sys_bit = int(re.findall(r"\d+", platform.architecture()[0])[0])/8 for k,v in formats.iteritems(): print "max {0} {1}".format(k, 2**struct.Struct(v["format"]).size*sys_bit-1)-1) print "min {0} {1}".format(k, -2**struct.Struct(v["format"]).size*sys_bit-1))