比较两个类似的python代码(项目Euler#3)

时间:2018-09-05 15:17:50

标签: python execution

我有两个密码。

第一个是

index_series  = pd.Series(df.index)
df.index = index_series.apply(lambda x: float(x.replace('N','')) if x.endswith('N') else -float(x.replace('S','')))

第二个是

x = 600851475143
a = 2
max = 0
while a < x:
    for i in range (2, int(a**0.5)+1):
        if a % i == 0:
            break
    else:
        if x % a == 0 : max = a
    a += 1
print(max)

两者都是用python编写的

你们可以看到的唯一不同是,我将最终值放在变量“ max”中,然后打印出来还是在if语句中打印出来。但是这两者的执行速度有很大的不同。谁能解释为什么?

1 个答案:

答案 0 :(得分:0)

在第一种情况下,存在max = a这是一个赋值,需要花费一些额外的时间来计算,您的差异不应该太大。