如何在Python中表示整数的最小值和最大值?在Java中,我们有Integer。MIN_VALUE和Integer.MAX_VALUE。
请参见:Python中的最大浮点数是什么?
如何在Python中表示整数的最小值和最大值?在Java中,我们有Integer。MIN_VALUE和Integer.MAX_VALUE。
请参见:Python中的最大浮点数是什么?
当前回答
如果你想要数组或列表索引的最大值(相当于C/ c++中的size_t),你可以使用numpy:
np.iinfo(np.intp).max
这与sys相同。Maxsize的优点是你不需要import sys。
如果你想在机器上为本机int设置max:
np.iinfo(np.intc).max
您可以在doc中查看其他可用的类型。
对于浮点数,你也可以使用sys.float_info.max。
其他回答
sys。maxsize常量已从Python 3.0开始移除,取而代之的是使用sys.maxsize。
Integers PEP 237: Essentially, long renamed to int. That is, there is only one built-in integral type, named int; but it behaves mostly like the old long type. ... 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).
在Python中,一旦传入sys值,整数将自动从固定大小的int表示转换为可变宽度的长表示。Maxint,它是231 - 1或263 - 1,这取决于你的平台。注意这里加了个L
>>> 9223372036854775807
9223372036854775807
>>> 9223372036854775808
9223372036854775808L
来自Python手册:
数字是由数字字面值或作为内置函数和操作符的结果创建的。未经修饰的整数字面量(包括二进制、十六进制和八进制数)产生普通整数,除非它们所表示的值太大,不能用普通整数表示,在这种情况下,它们产生长整数。带'L'或'L'后缀的整数字面值会产生长整数('L'是首选,因为1l看起来太像11了!)
Python非常努力地假装它的整数是数学整数并且是无界的。例如,它可以轻松计算googol:
>>> 10**100
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L
下面给出的代码将帮助您。 对于最大值,可以使用sys。对于Maxsize和minimum,您可以对相同的值进行否定并使用它。
import sys
ni=sys.maxsize
print(ni)
如果你只需要一个比其他所有数字都大的数字,你可以使用
float('inf')
小数:以类似的方式比其他数都小的数:
float('-inf')
这在python2和python3中都有效。
如果你想要数组或列表索引的最大值(相当于C/ c++中的size_t),你可以使用numpy:
np.iinfo(np.intp).max
这与sys相同。Maxsize的优点是你不需要import sys。
如果你想在机器上为本机int设置max:
np.iinfo(np.intc).max
您可以在doc中查看其他可用的类型。
对于浮点数,你也可以使用sys.float_info.max。