Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.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 还有别的办法吗?我已经尝试了6个版本的代码,当我运行它时,我似乎无法得到结果_Python_Python 2.7 - Fatal编程技术网

Python 还有别的办法吗?我已经尝试了6个版本的代码,当我运行它时,我似乎无法得到结果

Python 还有别的办法吗?我已经尝试了6个版本的代码,当我运行它时,我似乎无法得到结果,python,python-2.7,Python,Python 2.7,我对这个很陌生。我在过去的6个小时里一直在做这个作业(:(),这是我尝试的第7个版本的代码,我有一个输入文件,里面有名字和分数(10个学生的名字以及每个学生的3个分数,我尝试输入它,但在出现错误之前我看不到任何结果,我似乎正在努力分配分数并从中获得平均值。我还有其他方法可以做到这一点吗 我试着把输入分成不同的学生,然后试着让程序读名字和分数,最后是平均值 with open('grades1.txt') as f: content = [line.split() for line in f]

我对这个很陌生。我在过去的6个小时里一直在做这个作业(:(),这是我尝试的第7个版本的代码,我有一个输入文件,里面有名字和分数(10个学生的名字以及每个学生的3个分数,我尝试输入它,但在出现错误之前我看不到任何结果,我似乎正在努力分配分数并从中获得平均值。我还有其他方法可以做到这一点吗

我试着把输入分成不同的学生,然后试着让程序读名字和分数,最后是平均值

with open('grades1.txt') as f:
 content = [line.split() for line in f]

 keys = content[0]

 lst = list(zip([keys]*(len(content)-1), content[1:]))
  x = [zip(i[0], i[1]) for i in lst]
  z = [dict(i) for i in x]


  Name,grade1,grade2,grade3 = x.split()
   subjects = [float(name), float(grade1), float(grade2), 
   float(grade3)]
   sum = 0
    zero_count = 0
    for subject in subjects:
   sum += subject
  if subject is 0:
     zero_count +=
   print(i,  sum/(len(subjects)-zero_count)
我尝试的东西似乎都不管用, 我不断发现语法错误等。下面是作业的链接:

\

输入: 汤姆4.5 戴伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊伊6 7 托林(8 8 3) 梅里亚多克1.0 2.3 4.5 山姆2.4 6.5 4.7 戈勒姆1.8 6.7 5.3 佛罗多9.1 3.7 8.5 甘道夫5.1 5.5 6.9 佩雷格里恩3.0 8.5 3.1 布鲁因2.0 6.0 2.5

输出: 汤姆的平均成绩是 Dain的平均成绩为x Thrinha的平均等级为x 梅里亚多克的平均成绩是x 萨姆的平均成绩是x 戈勒姆的平均成绩是x 弗罗德的平均成绩是x 甘道夫的平均成绩是x Peregrijn的平均成绩为x Bruine的平均等级为x
报告结尾

我不确定我是否理解您的代码,但这里有一个相当简单的方法。有关解释,请参阅注释:

with open('grades1.txt') as f:
    for line in f:
        # Split on underscore to get name and grades (filtering out empty strings)
        # Grades will be in one string, ex: "1.0 5.0 7.7"
        name, grades_string = filter(None, line.split('_'))
        # Split grades string on space and convert to each float
        grades = [float(x) for x in grades_string.split(' ')]
        # Calc average
        average = sum(grades) / len(grades)
        # Print results (TODO: formatting/rounding)
        print name + ' has an average grade of ' + str(average)

如果您遇到错误,请提供错误的完整回溯,因为这将有助于我们帮助您。查看文件样本和所需输出样本也会有所帮助。请不要发布图像(或图像链接)。复制并粘贴输入文件和所需的输出,这样,如果有人想运行您的代码,他们可以只复制文件数据。此外,由于缩进在Python中非常重要,请确保此处的代码缩进正确。