2014-10-01 40 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

感謝。

相關問題