从文件和平均总数

从文件和平均总数

问题描述:

Python 3.x 我试图读取一个名为numbers.txt的文件。它有几行数字。我需要打印总数和平均数。除此之外,我需要为IOerror和ValueError使用异常处理。从文件和平均总数

预先感谢您。我知道有这样的问题,但建议错误了。

def main(): 
    total = 0.0 
    length = 0.0 
    average = 0.0 
    try: 
     filename = raw_input('Enter a file name: ') 
     infile = open(filename, 'r') 
     for line in infile: 
      print (line.rstrip("\n")) 
      amount = float(line.rstrip("\n")) 
      total += amount 
      length = length + 1 
     average = total/length 
     infile.close() 
     print ('There were', length, 'numbers in the file.') 
     print (format(average, ',.2f')) 
    except IOError: 
     print ('An error occurred trying to read the file.') 
    except ValueError: 
     print ('Non-numeric data found in the file') 
    except: 
     print('An error has occurred') 
+1

到目前为止你有什么?这是功课吗? – dstromberg 2013-04-29 01:20:19

+0

@ user2330409如果是作业,你应该在提问前尝试一些东西。 SO不是一个完成作业的网站,当你无法正确调试某些内容时,它会提供帮助。 – 2013-04-29 01:26:32

+0

感谢您的回应,这是作业,我刚刚在上面添加它。那么我一直在尝试一段时间,它确实需要调试。对不起,我没有在帖子中添加代码。 – user2330409 2013-04-29 01:28:24

with open('numbers.txt', 'r') as my_file: 
    try: 
     data = [float(n) for n in my_file.read().split()] 
    except (IOError, ValueError): 
     data = [] 
total = sum(data) 
average = total/len(data) 
print('Numbers: {nums}\nTotal: {total}\nAverage: {average}'.format(nums = data, total = total, average = average)) 

以供将来参考,因为这是非常简单的代码,你可以谷歌的每个部分分别,你可以拼凑他们。

+0

感谢和未来我将使用谷歌,但这令我很沮丧。你给我的代码几乎可以工作,但给出了错误:\t TypeError:不支持的操作数类型为+:'int'和'str' – user2330409 2013-04-29 01:37:20

+0

@ user2330409检查我的编辑(我忘记了读取文件返回一个字符串)。 – 2013-04-29 02:06:41

+1

非常感谢你!这是有道理的。 – user2330409 2013-04-29 02:09:37