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

进行大整数计算时python3中出现奇怪的错误

孔睿
2023-03-14
问题内容

我试图在Python 3.5.2中做到这一点:

int(204221389795918291262976/10000)

但是得到了意外的结果: 20422138979591827456

在Python 2.7.12中运行正常,结果是: 20422138979591829126L

知道为什么Python 3给我错误的结果吗?


问题答案:

在python 3中,您必须//显式使用整数除法,否则即使在2个整数之间也会应用浮点除法。

这是python 2和python 3之间的主要变化之一

在您的示例中:(将同时在python 2和python 3中工作,因此它向后兼容!)

204221389795918291262976//10000
20422138979591829126

(您甚至无需转换为int此处,结果是int因为两个术语都为int

顺便说一句,如果您想使此错误与python 2一起工作,也可以:)

from __future__ import division


 类似资料:
  • 为什么第一次计算的结果比第二次计算的结果大? 结果:

  • 我在打印报告时出现了一个奇怪的错误。

  • 问题内容: 我一般对Python和编程都不熟悉,所以如果我遗漏了一些明显的东西,请提前道歉。我正在尝试绘制图形并标记轴,但是每次尝试标记y轴时都会引发异常。我在下面的新脚本中编写了代码,以确保问题不是来自模块中的其他地方。我正在使用Python 3.4。 每次,我在最后一行收到错误“ TypeError:’str’对象不可调用”。如果我将y更改为x,一切都很好。如果将x更改为ay,则会收到相同的错

  • 问题内容: 我刚刚看到类似于以下代码: 运行后,此代码块将打印出来: 我理解为什么第一个是:因为两个对象是单独的对象,所以比较引用。但是我不知道为什么第二条语句返回了?当Integer的值在一定范围内时,会出现一些奇怪的自动装箱规则吗?这里发生了什么? 问题答案: 该行实际上是由语言规范保证的。从5.1.7节开始: 如果要装箱的值p为true,false,一个字节,\ u0000到\ u007f范

  • 我试图通过一个向量来调用cook类,但是我不知道该怎么做。这是我的代码: _cooks是一个类的向量,而我试图构建的函数是: 然而,当我尝试编译时,我发现: 厨房。cpp:在成员函数“void Kitchen::make_pizza(标准:_cxx11::string,标准:_cxx11::string,Ipc)”中:厨房/厨房。cpp:148:59:错误:在'void'std::thread t

  • 问题内容: 我和之间有关系 所以当我尝试持久化对象时 我懂了 如您所见,它尝试插入正确的值,但是以某种方式将其标记为语法错误。我认为它缺少左右的单引号,但是由于它是在后台进行查询的,所以我不知道如何解决它。请注意,我对同一项目中的其他实体执行了完全相同的操作,并且工作正常。太沮丧了!! 问题答案: GROUP确实是保留的关键字,您必须对其进行转义。在JPA 2.0中,有一种标准化的方法来指定分隔标