【问题标题】:Basic Python code works differently on new machine (Mac)基本 Python 代码在新机器 (Mac) 上的工作方式不同
【发布时间】:2021-04-14 08:08:39
【问题描述】:

我刚启动我的新 M1 MacBook,由于预装了 Python2.7,我想在终端中运行一个小谐波系列程序,以与我的旧 Mac(旧 Intel)进行比较。我知道这是一个愚蠢的测试。

import time

t_1=time.time()
x=1
i=1
while x<20:
        i+=1
        x+=1/i
        if i % 1e6 == 0: print(i,x);

print(i)
t_2=time.time()
print(str(t_2-t_1)+' s')

事实证明,只有在 M1 Mac 上,程序没有按预期运行,因为 x 没有增加。我不得不将x+=1/i 更改为x+=1/float(i),因此x 被理解为浮点数,而不是“四舍五入”为1(保持整数)。我认为,虽然后者实际上是更正确的编程方式,但 python 在变量方面很灵活,我最重要的问题当然是:为什么这在不同的机器上会有不同的工作方式?

【问题讨论】:

  • 在除法上处理数字是 Python 2 和 Python 3 之间的区别之一。您之前可能使用过 Python 3
  • 跟电脑​​没关系,只是你的python版本不一样
  • 我很抱歉这个愚蠢的问题。我实际上并不知道我在旧机器上使用 Python 3。

标签: python macos


【解决方案1】:

在 python2.7 中,/ 是整数除法。如果你导入

from __future__ import division

在文件的顶部,然后您可以使用/ 进行浮点除法。

如果您仍然希望能够使用整数除法,您可以随时使用//

【讨论】:

    猜你喜欢
    • 2018-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    • 2016-11-19
    • 2011-02-09
    相关资源
    最近更新 更多