3 回答
TA贡献1900条经验 获得超5个赞
长整数:
没有明确定义的限制。可用地址空间量构成实际限制。
(取自本网站)。请参阅数字类型的文档,您将看到它们Long integers have unlimited precision
。在Python 2中,当Integers超出限制时,它们会自动切换到long:
>>> import sys>>> type(sys.maxsize)<type 'int'>>>> type(sys.maxsize+1)<type 'long'>
对于整数我们有
maxint和maxsize:
int的最大值可以在Python 2.x中找到sys.maxint
。它已在Python 3中删除,但sys.maxsize
通常可以使用它。来自更改日志:
删除了sys.maxint常量,因为不再对整数值进行限制。但是,sys.maxsize可以用作大于任何实际列表或字符串索引的整数。它符合实现的“自然”整数大小,并且通常与同一平台上以前版本中的sys.maxint相同(假设具有相同的构建选项)。
并且,对于任何对差异感兴趣的人(Python 2.x):
sys.maxint Python常规整数类型支持的最大正整数。这至少是2 ** 31-1。最大的负整数是-maxint-1 - 使用2的补码二进制算法产生不对称性。
sys.maxsize平台的Py_ssize_t类型支持的最大正整数,因此最大大小的列表,字符串,dicts和许多其他容器都可以。
为了完整起见,这是Python 3版本:
sys.maxsize 一个整数,给出一个Py_ssize_t类型的变量的最大值。在32位平台上通常为2 ^ 31 - 1,在64位平台上为2 ^ 63 - 1。
花车:
有float("inf")
和float("-inf")
。这些可以与其他数字类型进行比较:
>>> import sys>>> float("inf") > sys.maxsizeTrue
TA贡献1821条经验 获得超4个赞
Python long
可以任意大。如果您需要一个比任何其他值更大的值,您可以使用float('inf')
,因为Python在比较不同类型的数值时没有任何问题。同样,对于小于任何其他值的值,您可以使用float('-inf')
。
TA贡献1851条经验 获得超3个赞
直接回答标题问题:
整数大小不受限制,在Python中没有最大值。
回答哪些地址陈述了基本用例:
根据你对你要做的事情的评论,你现在正在思考一些事情
minval = MAXINT;for (i = 1; i < num_elems; i++) if a[i] < a[i-1] minval = a[i];
这不是如何用Python思考的。更好的Python翻译(但仍然不是最好的)将是
minval = a[0] # Just use the first valuefor i in range(1, len(a)): minval = min(a[i], a[i - 1])
注意,上面根本不使用MAXINT。解决方案的这一部分适用于任何编程语言:您不需要知道最高可能值,只是为了找到集合中的最小值。
但无论如何,你在Python中真正做的只是
minval = min(a)
也就是说,你根本不写循环。内置min()
函数获得整个集合的最小值。
添加回答
举报