我已经遇到了一个我最新作业的砖墙,我必须从用户输入一定数量的文本文件中计算出课程平均值。
代码:
f=open('class.txt','w')
title=['name','english','math','science']
f.write(str(title)+""+"\n")
name=input("enter student name:")
m=int(input("enter math score:"))
e=int(input("enter english score:"))
s=int(input("enter science score:"))
o=input("do you wish to continue?: y/n:")
f.write(name + " " +str(m)+ " "+str(e)+" "+str(s)+" "+"\n")
name =[]
while o !='n':
name=input("enter a student name:")
m=int(input("enter math score:"))
e=int(input("enter english score:"))
s=int(input("enter science score:"))
o=input("do you wish to continue?: y/n:")
f.write(name + " " +str(m)+ " "+str(e)+" "+str(s)+" "+"\n")
f.close()
基本上,文本文件需要一个标题,因此带有"标题"在其中,并在用户点击' n'文本文件被保存。
现在我无法弄清楚如何编写读取文本文件的代码,计算每个学生的总分,计算每个学生的平均分数,然后将其全部打印成三列。如果我能得到关于如何做到这一点的任何指示,我将不胜感激!谢谢!
答案 0 :(得分:0)
(我不是一名phython程序员,所以语法可能不完全正确)
我假设您要编写生成文本文件的代码并同时计算平均值。如果是这样,则不需要写入文件然后重新阅读它,只需保持运行总计并在完成后计算平均值。
numberOfStudents = 0
int totalMathScore = 0
# Only showing math score add lines to do same with english / science
# see below about how loop should be structured
while continue != 'n':
numberOfStudents += 1
m=int(input("enter math score:"))
totalMathScore += m
# Now calculate average math score
averageMathScore = totalMathScore / numberOfStudents
查找重复代码和重构的位。例如你在循环内外获得分数的地方。这个风格很差,应该是
a)把它放在一个函数
中b)或者更有可能将这个简单的例子改变为类似
的循环continue = 'y'
while (continue != 'n'):
name=input("enter a student name:")
m=int(input("enter math score:"))
e=int(input("enter english score:"))
...
其他奖金