【发布时间】: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。