2014-10-01 160 views
-2

我的任务是读取我已写入的txt文件,在每行上分别显示数字,并使用循环获取数字的平均值。这是我迄今为止所拥有的。读取一个txt文件,并找到python中的数字的平均值

data = [] 
def main(): 
    f = open('tests.txt', 'r') 
    for line in tests: 
     amout = float(line) 
     print(format(amount, '.3f')) 
     print avg() 
     tests.close() 
def avg(): 
    for line in f: 
     fields = line.split() 
     rowdata = map(float, fields) 
     data.extend(rowdata) 
     average = (sum(data)/len(data)) 
     print("The average is", average) 
main() 
+0

对我们有任何问题吗? – 2014-10-01 22:18:59

+0

我在做什么错?一直坚持这一点。 – Redblaster13 2014-10-01 22:20:34

+0

如果你读到错误说的话,你会发现你犯了一个错字:'amout = float(line)' – 2014-10-01 22:21:22

回答

0

试试这个。它运行在2.5到3.4之间。

#!/usr/local/cpython-3.4/bin/python 

'''Compute average of numbers in tests.txt''' 

# pylint: disable=superfluous-parens 
# superfluous-parens: Parentheses are good for clarity and portability 

from __future__ import with_statement 


def main(): 
    '''Main function''' 
    numbers = [] 
    with open('tests.txt', 'r') as file_: 
     for line in file_: 
      fields = line.split() 
      print(line.rstrip('\n')) 
      subnumbers = (float(field) for field in fields) 
      numbers.extend(subnumbers) 
    print('The average is %s' % avg(numbers)) 


def avg(numbers): 
    '''Compute average''' 
    average = (sum(numbers)/len(numbers)) 
    return average 

main() 

或者作为更大计划的一部分,看到http://stromberg.dnsalias.org/~strombrg/stddev.html

感谢。

相关问题