Python中整数的最大值是多少?
与C/C++不同,在Python 3中,长整型的精度是无限的,无明确定义的限制。可用的地址空间量被认为是实际限制。
在Python 2中,当整数超出它们的限制时,整数将自动转换为长整型。
阅读更多:Python 教程
Python 2
>>> import sys
>>> type(sys.maxint)
<type 'int'>
>>> type(sys.maxint + 1)
<type 'long'>
Python 3
maxint已在Python 3中删除,但sys.maxsize通常可以代替。
>>> import sys
>>> type(sys.maxsize)
<class 'int'>
>>> type(sys.maxsize + 1)
<class 'int'>
从上面的输出可以看出,Python 3中的int和long实际上是合并的,值并不重要。
#Python 2.7
>>> import sys
>>> print sys.maxint #最大整数值
2147483647
>>> print -sys.maxint -1 #最小整数值
-2147483648
但在Python 3中,我们可以分配一个比这个更高的值,因为这个范围将会增加。sys.maxint被sys.maxsize所替代。
#在Python 3.6中
>>> import sys
>>> print(sys.maxsize)
2147483647
最大和最小整数、长整数和浮点数值
# Python 2.7
import sys
print("Float value information: ",sys.float_info)
print("\n")
print("Long Integer value information: ",sys.long_info)
print("\n")
print("Maximum size of an integer: ",sys.maxsize)
输出
('Float value information: ', sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308,
min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15,
mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1))
('Long Integer value information: ', sys.long_info(bits_per_digit=30, sizeof_digit=4))
('Maximum size of an integer: ', 9223372036854775807L)
#Python 3.6
import sys
print("Float value information: ",sys.float_info)
print("\nInteger value information: ",sys.int_info)
print("\nMaximum size of an integer: ",sys.maxsize)
输出
Float value information: sys.float_info(max=1.7976931348623157e+308, max_exp=1024,
max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307,
dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)
Integer value information: sys.int_info(bits_per_digit=15, sizeof_digit=2)
Maximum size of an integer: 2147483647