Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何编写一个Python程序,从.dat文件计算平均值?_Python - Fatal编程技术网

如何编写一个Python程序,从.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

到目前为止,我有这个,但我不知道如何在.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
这是我的.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
调用可能更安全。