我来自R背景,现在正在尝试学习Python。目前,我正在研究如何在R中使用Python进行一些计算。例如,求和
在R中,我可以做类似的事情
x <- 1:2015
dat <- rep(NA, times = 2015)
for (i in x){
dat[i] <- floor(sqrt(i) / 10)
}
dat
sum(dat)
要么
dat <- sapply(x, function(i) floor(sqrt(i) / 10))
sum(dat)
给出正确答案5064。
但是,下面的Python代码给了我5060.0。
import pandas as pd
import numpy as np
sum(np.floor(np.sqrt(range(1,2015)) / 10))
我究竟做错了什么?
编辑:如Gregor所建议,R代码可以更好地编写为
sum(floor(sqrt(x) / 10))
。 最佳答案
在python中,如文档中所述,range(a,b)
生成器提供了从a
到b-1
的可迭代。要获得这样的总和,jou需要range(1, 2016)