首页 > 解决方案 > 编写一个程序,计算文件中存储的所有数字的平均值

问题描述

'''
Average Number 
'''

def main ():
    import sys
    try:
        NumberTxt = open("numbers.txt", "r")
    except IOError as e:
        print ("Non-numeric data found in the file   /n press enter" )
    except (ValueError):
        print( "Non-numberic data found in the file /n press enter")
    else:
        TotalNumber = 0
        NumbersOfLines = 0
        line = NumberTxt.readline()

        while line !="":
            NumbersOfLines += 1
            TotalNumber += int( line )
            line = NumberTxt.readline()
        averageNumbers = TotalNumber / NumbersOfLines

        print ( "The average is:", averageNumbers)
        print ( "press enter" )

main()

标签: python

解决方案


如果信息不完整,最可能的原因是因为您从文件中读取的行末尾仍然有换行符,最后一行只是换行符\n,所以while仍然是正确的,但随后int("\n")失败。因此,要修复更改这两行:

line = NumberTxt.readline().strip() # Strip leading and trailing spaces and newlines

while line: # Not strictly necessary, but more Pythonic to test this way

推荐阅读