到目前为止,我有这个,但我不知道如何写.dat文件:
def main():
fname = input("Enter filename:")
infile = open(fname, "r")
data = infile.read()
print(data)
for line in infile.readlines():
score = int(line)
counts[score] = counts[score]+1
infile.close()
total=0
for c in enumerate(counts):
total = total + i*c
average = float(total)/float(sum(counts))
print(average)
main()
这是我的.dat文件:
4
3
5
6
7
我的统计学教授希望我们学习Python来计算平均值和标准差。所有我需要知道的是如何做到这一点,然后我已经弄明白了。我想知道Python如何写入.dat文件中的每一行。有人能告诉我如何修复此代码吗?我以前从未做过编程。
我希望这个问题在主题上。我在mathstackexchange中问过这个并得到了一些敌意的回应。
答案 0 :(得分:1)
我认为这应该可以解决问题:
def main():
fname = input("Enter filename:")
infile = open(fname, "r")
numbers = []
for line in infile:
numbers.append(int(line))
infile.close()
average = float(sum(numbers))/len(numbers)
print(average)
main()
注意文件行的简化迭代。数字存储在numbers
列表中,然后将它们的总和除以列表的长度以计算平均值。一切都在main()
函数内完成,该函数在最后一行中调用。
答案 1 :(得分:0)
我不知道如何评论列夫的回答,我只是意识到平均值的计算就足够了。既然我现在已经完成了,你可能会想办法让标准差偏低。
def main():
[...]
sec_mom = 0
for n in numbers:
sec_mom = sec_mom + n**2
var = sec_mom - average**2
from math import sqrt
std_dev = sqrt(var)
print std_dev
这里[...]表示main()内部的内容,如上所述。此外,您可以在任何地方添加“print something ”,以便了解内容的内容。由于Python可以交互使用,也许可以尝试一次在Python解释器中插入一行代码,逐步尝试代码。