【问题标题】:increment with 1.0 in python gives unexpected answer在 python 中增加 1.0 给出了意想不到的答案
【发布时间】:2012-10-01 12:08:07
【问题描述】:
>>> a=3
>>> a+2.0
5.0
>>> a=a+1.0
>>> a
4.0

不明白为什么要推出 4.0。我认为 6.0 应该是答案。请解释为什么结果是 4.0。

【问题讨论】:

  • 第二行应该是a+=2 以获得您所期望的。
  • 这里似乎有点知识脱节...您必须分配更改值...
  • 注意你应该小心混合整数和浮点值。如果您打算始终使用整数,请坚持使用整数。它将提高性能,但更重要的是,这意味着您可以避免因使用浮点值进行算术运算的不精确性质而引入的错误。

标签: python increment


【解决方案1】:

其他人直接回答了您的问题。这是在提示下工作时要考虑的另一件事。

>>> a=3 # assignment does not update '_'
>>> a # have to ask for the value of 'a' so it ends up in '_'
3
>>> _ + 2.0
5.0
>>> _ + 1.0
6.0

您始终可以使用“_”,表示“最后一个结果的值”。

【讨论】:

    【解决方案2】:

    如果您仔细看,您并没有分配表达式的结果: a+2.0 打印出来的肯定是 5.0,但是 a 没有改变,因为没有将 (a=a+2.0) 分配给 a

    【讨论】:

      【解决方案3】:

      您没有将a+2.0 的结果分配回a,因此当您随后执行a=a+1.0 时,a 仍设置为3

      【讨论】:

        【解决方案4】:

        第二行当你做a+2.0时,你并没有修改a的值,所以第三行a仍然是3a+1.0正如预期的那样是4.0

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-02-20
          • 1970-01-01
          • 2013-05-13
          • 1970-01-01
          • 2020-11-23
          • 2021-10-23
          • 2021-11-23
          相关资源
          最近更新 更多