【发布时间】:2017-07-07 18:19:01
【问题描述】:
我整理了这段代码:
flux =[31.,29,27.,25.]
F=[]
with open("results.rdx", "r") as file1:
for line in enumerate(file1):
f_list = [float(i) for line in file1 for i in line.split(',') if
i.strip()]
F = f_list[7:11]
with open("results.txt", "a+") as file2:
file2.write(str(chisqfunc(flux,F)))
file2.write("\n")
我的输入文件如下所示:
5.0, 1000.0, 100000000000000.0, 115.2712, 230.538, 345.796, 461.0408,
1.053E-09, 1.839E-09, 1.632E-10, 1.959E-12, 4.109, 3.683, 3.586, 3.650
5.0, 1000.0, 500000000000000.0, 115.2712, 230.538, 345.796, 461.0408,
4.873E-09, 8.890E-09, 8.243E-10, 9.974E-12, 4.157, 3.704, 3.582, 3.649
5.0, 1000.0, 1000000000000000.0, 115.2712, 230.538, 345.796, 461.0408,
8.883E-09, 1.705E-08, 1.668E-09, 2.039E-11, 4.212, 3.731, 3.577, 3.648
其实还有很多行,但是全部发帖是没有意义的。该函数进行一些数组乘法等。我希望代码能做的是:读取第一行,将第 7-10 列的值附加到数组 F[],调用 chisqfunc 并将其结果打印到文件中results.txt。然后继续到第二行,将新值附加到F 等。
但它所做的只是从第 2 行开始,对第 2 行执行上述过程,只打印第 2 行的值。
我怀疑问题出在我声明for 的方式上。
非常感谢任何帮助。
【问题讨论】:
-
请确保准确地复制您的缩进,尤其是。当涉及循环时。
-
为什么要丢弃索引 7 之前的所有数字?只是好奇。
-
你的逻辑一团糟,我建议重新开始。
-
OP,你安装了 numpy 吗?
-
@patrick 抱歉,我错过了。