如何编写一个Python程序,从.dat文件计算平均值?
到目前为止,我有这个,但我不知道如何在.dat文件上写入:如何编写一个Python程序,从.dat文件计算平均值?,python,Python,到目前为止,我有这个,但我不知道如何在.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
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()
4
3
5
6
7
这是我的.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()
4
3
5
6
7
我的统计学教授希望我们学习Python来计算均值和标准差。我所需要知道的就是如何做的意思,然后我已经知道了其余的。我想知道Python是如何在.dat文件中的每一行上进行写操作的。有人能告诉我如何修复这个代码吗?我以前从未做过编程
我希望这个问题是关于这个主题的。我在交换中问了这个问题,得到了一些敌意的回应 我认为这应该可以做到:
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()
请注意文件行上的简化迭代。这些数字存储在
数字列表中,然后它们的总和除以列表的长度来计算平均值。一切都是在main()
函数中完成的,该函数在最后一行调用。我不知道如何评论Lev的答案,我只是意识到平均值的计算已经足够了。既然我现在已经做了,你可能会想办法得到下面的标准偏差
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()中已经存在的内容,如上所述。此外,您可以在任何地方添加“打印某物”,以便了解该某物的内部内容。由于Python可以交互使用,您可以尝试在Python解释器中一次插入一行代码,自己一步一步地尝试代码。您找到交叉验证的常见问题解答了吗?这个问题可能是关于stackoverflow的,就像math.stackexchange上的人建议的那样。也许可以将它迁移到?我不明白,为什么需要写入文件?sec\u mom
可以用一行计算:sec\u mom=sum([n**2代表n个数字])
。很好,我喜欢python中的列表理解:用with
语句包装open
调用可能更安全。