Python 3中的sys.maxint是什么?

时间:2012-12-10 05:56:21

标签: python python-3.x

我一直试图找出如何表示最大整数,并且我已阅读使用"sys.maxint"。但是,在Python 3中,当我调用它时,我得到:

AttributeError: module 'object' has no attribute 'maxint'

9 个答案:

答案 0 :(得分:127)

  

删除了sys.maxint常量,因为不再存在限制   到整数的值。但是,sys.maxsize可以用作   大于任何实际列表或字符串索引的整数。它符合   实现的“自然”整数大小通常是相同的   作为同一平台上以前版本中的sys.maxint(假设为   相同的构建选项)。

http://docs.python.org/3.1/whatsnew/3.0.html#integers

答案 1 :(得分:60)

正如其他人所指出的,Python 3的int没有最大尺寸,但是如果你只需要保证比其他任何int更高的东西值,然后您可以使用Infinity的浮点值,您可以使用float("inf")获得。

答案 2 :(得分:20)

Python 3整数没有最大值。

如果您的目的是在编译时以与Python相同的方式确定C中int的最大大小,则可以使用struct模块找出:

>>> import struct
>>> platform_c_maxint = 2 ** (struct.Struct('i').size * 8 - 1) - 1

如果您对Python 3 int对象的内部实现细节感到好奇,请查看sys.int_info以获取每位数字位数和数字大小详细信息。没有正常的程序应该关心这些。

答案 3 :(得分:16)

Python 3对int没有限制。 但是你可以使用 holder.getInfos().setText(posts.get(position).toString()); holder.getPp().setProfileId(posts.get(position).getProfile()); holder.getLike().setImageResource(R.drawable.ic_action_like_inactive); holder.getLike().setOnClickListener(new OnClickListener() { public void onClick(View v) { postLiked = !postLiked; holder.getLike().setImageResource(R.drawable.ic_action_like); } }); 作为比任何实际列表或字符串索引更大的整数。

答案 4 :(得分:6)

通过使用sys模块

import sys

INT_MAX = sys.maxsize  

INT_MIN = -sys.maxsize-1


print(INT_MAX,INT_MIN)

答案 5 :(得分:2)

Python 3.0不再具有sys.maxint,因为Python 3的int是 任意长度。而不是sys.maxint,它有sys.maxsize;最大值 正尺寸size_t的大小,又名Py_ssize_t。

答案 6 :(得分:2)

Python3不支持sys.maxint,相反,您可以使用:

sys.maxsize

答案 7 :(得分:2)

如果您查找的数字大于所有其他数字:

方法1:

float('inf')

方法2:

import sys
max = sys.maxsize

如果您查找的数字小于所有其他字符

方法1:

float('-inf')

方法2:

import sys
max = -sys.maxsize - 1

方法1在Python2和Python3中均有效。 方法2在Python3中有效。我没有在Python2中尝试方法2。

答案 8 :(得分:0)

一种替代方法是

import math

... math.inf ...