Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何计算多个整数列表的平均值?_Python_List_Integer_Average - Fatal编程技术网

Python 如何计算多个整数列表的平均值?

Python 如何计算多个整数列表的平均值?,python,list,integer,average,Python,List,Integer,Average,如何计算多个整数列表的平均值 我遇到了一个问题,试图让这个程序计算文本文件中数据的平均值 这是我的代码: import string from operator import itemgetter Options=("alphabetical order","highest to lowest","average score") Option=raw_input("Which order do you want to output?" + str(Options)) choices=("Clas

如何计算多个整数列表的平均值

我遇到了一个问题,试图让这个程序计算文本文件中数据的平均值

这是我的代码:

import string
from operator import itemgetter
Options=("alphabetical order","highest to lowest","average score")
Option=raw_input("Which order do you want to output?" + str(Options))
choices=("Class 1","Class 2", "Class 3")
file = open("Class1.txt","r")
#Highest to Lowest
lines = file.readlines()
loopcount = len(lines)
for i in range(0,loopcount):
    poszerostring = lines.pop(0)
    new = str(poszerostring)
    new1 = string.strip(new,'\n')
    tempArray = new1.split(',')
    resultsArray = [tempArray.append(poszerostring)]
    name = tempArray.pop()
    resultsArray.append(int(tempArray.pop()))
    resultsArray.append(int(tempArray.pop()))
    resultsArray.append(int(tempArray.pop()))
    resultsArray.remove(None)
    printedArray = resultsArray
    print printedArray
if Option == "average score":
        average = 0
        sum = 0    
        for n in printedArray:
            sum = sum(str(printedArray))
        average = sum / 3
        print average
以下是文本文件中的数据:

鲍勃,8,5,7

迪伦,5,8,2

杰克,1,4,7

杰伊,3,8,9


您正在为大部分代码重新发明轮子。我会使用
csv
包来读取文件,这会使代码更清晰

还有几点建议:

  • 根据PEP8,变量(如
    Options
    不得以大写字母开头;类应以大写字母开头
  • 如果只使用一次变量,则通常不必创建它;例如
    loopcount
    可以替换为`范围内的i(0,len(行))
  • 实际上,您根本不需要一个loopcounter
    i
    ,只需对行中的行使用
  • sum=sum(str(printedArray))
    将用一个值覆盖函数
    sum
    ,使函数
    sum
    在脚本中进一步不可用;始终避免使用等于现有函数名的变量名
  • sum(str())
    无法正常工作,因为您尝试添加字符串,而不是数字
  • 您可以看到,我使用带有open(file_name)的
    作为文件处理程序:
    ;这将打开文件,并在代码块末尾自动关闭它,从而防止我忘记再次关闭文件(您应该经常这样做);更多关于
    的信息,请参见

回答得好,可能还想解释一下为什么使用with打开file@gollumbo,为什么你在编辑时删除了所有代码?这是普通中等教育证书的一部分吗?来回删除和回滚这个问题的内容是荒谬的。你发布了一个问题,让公众看到,得到一个像样的答案,并试图删除你的t赛后的比赛?除了蔑视任何愿意帮助你的人并为此付出努力之外,这个问题以及@Peter的答案已经进入了他们的视野。
import csv

with open('Class1.txt') as csv_file:
    csv_reader = csv.reader(csv_file, delimiter=',')
    for row in csv_reader:
        name = row[0]  # first value on each row is a name
        values = [int(value) for value in row[1:]]  # make sure the other values are read as numbers (integers), not strings (text)
        average = sum(values) / len(values)  # note that in Python 2 this rounds down, use float(sum(values))/len(values) instead
        print('{}: {}'.format(name, average))