Python 还有别的办法吗?我已经尝试了6个版本的代码,当我运行它时,我似乎无法得到结果
我对这个很陌生。我在过去的6个小时里一直在做这个作业(:(),这是我尝试的第7个版本的代码,我有一个输入文件,里面有名字和分数(10个学生的名字以及每个学生的3个分数,我尝试输入它,但在出现错误之前我看不到任何结果,我似乎正在努力分配分数并从中获得平均值。我还有其他方法可以做到这一点吗 我试着把输入分成不同的学生,然后试着让程序读名字和分数,最后是平均值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]
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中非常重要,请确保此处的代码缩进正确。