当前位置: 首页 > 面试题库 >

Windows上出现“ OverflowError:Python int太大,无法转换为C long”,但不是mac

狄楷
2023-03-14
问题内容

我在Windows和Mac上都使用python 3.5 64位运行完全相同的代码。

在Windows上,它看起来像这样:

>>> import numpy as np
>>> preds = np.zeros((1, 3), dtype=int)
>>> p = [6802256107, 5017549029, 3745804973]
>>> preds[0] = p
Traceback (most recent call last):
  File "<pyshell#13>", line 1, in <module>
    preds[0] = p
OverflowError: Python int too large to convert to C long

但是,此代码在我的Mac上正常工作。任何人都可以帮助解释原因或提供Windows代码的解决方案吗?非常感谢!


问题答案:

一旦您的数字大于,您将得到该错误sys.maxsize

>>> p = [sys.maxsize]
>>> preds[0] = p
>>> p = [sys.maxsize+1]
>>> preds[0] = p
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: Python int too large to convert to C long

您可以通过检查确认这一点:

>>> import sys
>>> sys.maxsize
2147483647

若要更精确地获取数字,请不要在后台传递使用有界C整数的int类型。使用默认的float:

>>> preds = np.zeros((1, 3))


 类似资料:
  • 我正在用python研究基本微积分和阶乘。试图从牛顿级数生成PI,但我不能超过171次迭代,因为这个错误:overflowerrror:int太大,无法转换为float。代码如下: 我导入了这个:从数学导入阶乘,gamma/从数学导入sqrt

  • 我试图得到一个非常大的数字的平方根,但我得到了错误:deltaSqrt=pow(delta,0.5)溢出错误:长int太大,无法转换为浮动 在我的情况下,delta等于: 509752415912430571120834697697209399451791855931983919398681840231635980912719828796195714368058047566515853712321

  • 问题内容: 这是我第一次使用片段(android开发人员是新手),并且我正在尝试设置一个微调器。目前,我对上下文非常困惑,似乎无法解决此错误: 这是其所引用的代码: HotkeysFragment.java 具体行是: 进口: 我怎样才能解决这个问题? 问题答案: 来自Fragments的Android文档,来自此处: 警告:如果您在Fragment中需要一个Context对象,则可以调用getA

  • 问题内容: 为什么写: 问题答案: 实现的对象是。 您要在其中覆盖的方法应将对象作为参数,而将其强制转换为。您的实现应描述如何与另一个进行比较。 要真正进行排序,您可能还需要制作工具,然后将实际逻辑复制粘贴到其中。

  • 问题内容: 我当前正在使用条件来检索用户的详细信息,但是当尝试用合适的用户查询详细信息对象时,我得到了ClassCastException。 我的标准代码; 我也尝试使用; 两者都给我ClassCastException。我知道我可以通过让用户实现Serializable来轻松解决它,但是还有其他解决方案吗? 问题答案: 唯一的其他解决方案是实现Externalizable。

  • 我最近从Windows 8.1升级到了Windows 10。 现在我想为新安装的ApacheMaven设置一个环境变量。 每次我创建用户变量时,一切都很好。然而,我还需要创建系统变量,在这里我需要将bin目录附加到我已经在用户变量中创建的变量“path”。 现在,每次我这样做,我都会得到一个错误,说“这个环境变量太大了”。因此,我无法创建路径。 我已经附上了这个错误的图像。