整数的最大值和最小值
我正在寻找python整数的最小值和最大值。 例如,在Java中,我们有Integer.MIN_VALUE
和Integer.MAX_VALUE
。 在Python中有这样的东西吗?
在Python 2中,有sys.maxint
:
>>> sys.maxint 9223372036854775807
您可以使用-sys.maxint - 1
来计算最小值,如下所示。 当然Python一旦超过这个值,就会从普通的整数切换到长整数。
在Python 3中,这个值对整数没有任何意义。 (但是,如果实际上是在查找机器的字大小 ,则密切相关的值仍可用作sys.maxsize
。)
sys.maxint常量已经从Python 3.0中移除,而是使用sys.maxsize
整型
- PEP 237:基本上,长重命名为int。 也就是说,只有一个内置的整型,名为int; 但它的行为大多像旧的长型。
- PEP 238:像1/2这样的expression式返回一个浮点数。 使用1 // 2来获取截断行为。 (后者的语法已经存在多年了,至less从Python 2.2开始)。
- sys.maxint常量被删除,因为整数的值不再有限制。 但是,sys.maxsize可以用作比实际列表或string索引更大的整数。 它符合实现的“自然”整数大小,并且通常与以前版本中的sys.maxint相同(假设有相同的构build选项)。
- 长整数的repr()不再包含尾随的L,所以无条件去掉那个字符的代码会把最后一个数字砍掉。 (用str()代替。)
- 八进制文字不再是0720的forms; 改用0o720。
请参阅: https : //docs.python.org/3/whatsnew/3.0.html
如果你只需要一个比所有其他人都多的号码,你可以使用
float('inf')
以类似的方式,一个比所有其他人小的数字:
float('-inf')
这在python 2和3中都可以使用。
在Python中,整数将自动从一个固定大小的int
expression式切换到一个可变宽度的long
表示forms,一旦您传递了值为sys.maxint
的数值,取决于您的平台,它是2 31 – 1或2 63 – 1。 注意这里附加的L
:
>>> 9223372036854775807 9223372036854775807 >>> 9223372036854775808 9223372036854775808L
从Python手册 :
数字是由数字文字或内置函数和运算符的结果创build的。 未经修饰的整数文字(包括二进制,hex和八进制数字)会产生纯整数,除非它们表示的值太大而无法用纯整数表示,在这种情况下,它们会产生一个长整数。 具有
'L'
或'l'
后缀的整数文字会产生长整数('L'
是首选,因为1l
看起来太像十一个!)。
Python很难假装它的整数是math整数,而且是无界的。 它可以,例如,轻松地计算一个googol :
>>> 10**100 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L
我从谷歌来到这里,正在寻找python3.在这种情况下,
import sys max = sys.maxsize min = -sys.maxsize