Skip to main content
 首页 » 编程设计

python之在python中制作最大的数字

2025年05月04日11unruledboy

我正在寻找一个保证比任何给定的 int 都大的 Python 对象。它应该是可移植的、平台无关的并且可以在 Python 2.7+ 和 3.x 上工作。

例如:

x = float('inf') 
while True: 
    n = next(my_gen) 
    if my_calc(n): 
        x = min(n, x) 
        if my_cond(x): 
            break 

我在这里使用了 float('inf') 因为它似乎表现正确。但这感觉很脏,因为我认为它依赖于一些底层的 float 规范,而且我不知道它是否会依赖于平台或以意想不到的方式中断。

我知道我可以创建自己的类并定义比较运算符,但我认为可能存在现有的内置方法。

这样使用 float('inf') 安全吗?有没有更简单的方法来创建这个“最大整数”?

请您参考如下方法:

float('inf') 保证测试大于任何数字,包括整数。这不是特定于平台的。

来自floatobject.c source code :

else if (!Py_IS_FINITE(i)) { 
    if (PyInt_Check(w) || PyLong_Check(w)) 
        /* If i is an infinity, its magnitude exceeds any 
         * finite integer, so it doesn't matter which int we 
         * compare i with.  If i is a NaN, similarly. 
         */ 
        j = 0.0; 

Python 整数本身仅受内存限制,因此使用 10 ** 3000 可能不够大。

float('inf') 总是可用; Python 将为您处理底层平台细节。