首页 > 解决方案 > 需要帮助编写一个 Python 程序,该程序将读取此输入文件并显示以下信息:输入文件的总和、平均值、最小值和最大值

问题描述

我已经开始了我的代码,并且在一个非常好的开始,但是,当我在我的代码中添加总和、平均值、最小值和最大值时,我遇到了一个障碍,我相信这是一个非常容易解决的问题给知道在做什么的人。任何帮助将不胜感激。我文件中的数字是 14、22 和 -99。到目前为止,这是我的代码:

def main ():
     contents=''
     
     try:
        infile = openFile()

        count, sum = readFile(infile)

        closeFile(infile)

        display(count, sum)

     except IOError:
          print('Error, input file not opened properly')

     except ValueError:
          print('Error, data within the file is corrupt')


def openFile():
     infile=open('numbers.txt', 'r')
     return infile


def readFile(inf):

     count = 0
     sum = 0

     line = inf.readline()

     while line != '':
          number = int(line)
          sum += number
          count += 1
          line = inf.readline()

     return count, sum          

          
def closeFile(inF):
     inF.close()

def display(count, total):
     print('count = ', count)
     print('Sum = ', total)


main()

标签: python

解决方案


您的代码包含许多反模式:您显然试图像 OO 一样构造它但不使用类......但是这个:

 line = inf.readline()

 while line != '':
      number = int(line)
      sum += number
      count += 1
      line = inf.readline()

是最糟糕的部分,可能是罪魁祸首。

惯用的 Python 很少使用readline并仅迭代文件对象,良好的做法建议剥离输入行以忽略尾随空白字符:

for line in inf:
    if line.strip() == '':
        break
    sum += number
    count += 1

推荐阅读