Python-如何确定我的系统可以处理的最大/最小 int/long/float/复数 [重复]

Posted

技术标签:

【中文标题】Python-如何确定我的系统可以处理的最大/最小 int/long/float/复数 [重复]【英文标题】:Python-How to determine largest/smallest int/long/float/complex numbers my system can handle [duplicate] 【发布时间】:2013-06-04 17:40:31 【问题描述】:

规格: Python 3.3.1

我想做的事:“使用 Python,确定您的系统可以处理的最大和最小整数、长整数、浮点数和复数。”

我做了什么:我浏览了 Python 的数学模块和所有与数学和数字相关的内置函数,但找不到方法。我也尝试过类似max(range(0,)) 的方法,但它返回了ValueError: max() arg is an empty sequence 错误。

问题:如何确定我的系统可以使用 Python 处理的最大/最小 int/long/float/complex 数?作为一个完全的初学者,我知道我一定错过了一些东西,但我尝试过但无法弄清楚。我感谢您的帮助!

【问题讨论】:

Python 3 中没有最大或最小整数,因为使用了任意精度。复数不是完全有序的,因此没有最大或最小的数字。 (例如,1 既不小于、不等于也不大于 i。) 感谢您指出其他线程!好吧,因为它没有回答我问题的“长、浮点数、复数”部分(或者是吗?我错过了什么吗?),我不妨把这个帖子留在这里,所以如果有人问长/浮点数/复数可能需要它? @chepner 感谢您抽出宝贵时间!请原谅我,但我不完全了解您提到的arbitrary precision。这是否意味着它取决于盒子的内存大小?如果是这样,有没有办法在解释器中查看结果?谢谢! 正确。从 Python 的角度来看,没有最大大小。在某些时候只会出现 OutOfMemory 错误。 @chepner 明白了。谢谢! 【参考方案1】:

sys module 上提供了 python 数字限制,例如有任何限制:

sys.float_info 是一个命名元组,对您的平台有浮点限制。浮点数由指数和精度组成;您必须更准确地了解此处最大数字的含义;使用中具有最大指数和完整精度的数字是sys.float_info.max

sys.int_info;与其说是实施细节的限制,不如说是实施细节;您应该能够从中估计出可能的最大整数。 Python 整数仅受可用内存的限制。

sys.maxsize;平台字长和对列表和元组等的限制。

所以对于整数,基本上有一个 soft 对最大值和最小值的限制。这取决于您的进程可以使用多少内存,以及您的进程已经为其他事情使用了多少内存。

在 Python 3 中,不再有单独的 long 类型,但在 Python 2 中,sys.maxsize + 1 必须是 long-sys.maxsize - 2 也是如此。在这两个极端之间是可能的“短”整数范围。

对于复数,排序要稍微多一点......无论如何都复杂。复数具有实部和虚部,两者都是浮点数。你猜怎么了?这些是 python 浮点数,您已经在上面获得了它们的限制信息:

>>> type(1j)
<type 'complex'>
>>> type(1j.real)
<type 'float'>
>>> type(1j.imag)
<type 'float'>

【讨论】:

说得很好。非常感谢! 我用的是Python 2.7.3,没有sys.int_info,而是sys.long_info 正确;这个问题被标记为python-3.x,所以我专注于那个版本。 Python 3 完全消除了longint 之间的区别。由于信息记录了 Python 2 long 的处理方式,因此 2.x sys 属性名称自然反映了这一点。【参考方案2】:

sys.float_info 提供浮点值所需的信息。

>>> sys.float_info.max
1.7976931348623157e+308

Python 3 对整数没有上限或下限,并且不存在对任意复数进行排序的数学定义(尽管两个复数的实部或虚部可以单独排序)。

【讨论】:

感谢您的回答!虽然在我的 Python 3.3.1 系统上它是sys.float_info。但是,您指出了整条路径这一事实非常有帮助。谢谢! 已修复。我很困惑,因为sys.float_infosys.floatinfo 类的一个实例。 我还不太明白你的意思。但如果是因为我错过了什么,我真诚地道歉,Python 初学者! 试试type(sys.float_info)。类名和该类的实例名非常相似。

以上是关于Python-如何确定我的系统可以处理的最大/最小 int/long/float/复数 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何确定给定编译标志的 GCC 的最小/最大版本?

如何确定 Oracle NUMBER 列的最大值和最小值?

如何通过 SSIM 确定图像质量?

创建一个新变量,它是python中另一个变量的每周最小值/最大值

选择排序

如何在文件处理中从文本文件中找到每一行的最小值和最大值?