匿名用户
1级
2015-10-15 回答
你要是把你的代码截图还可能看出问题,用你的代码测试了一下,完全可行。
如果你的输入那一句有问题的话,建议把raw_input更改为input:
filename = input("Enter name the grade file:")
class Student:
def __init__(self,name,hours,qpoints):
self.name = name
self.hours = float(hours)
self.qpoints = float(qpoints)
def getName(self):
return self.name
def getHours(self):
return self.hours
def getQPoints(self):
return self.qpoints
def gpa(self):
return self.qpoints/self.hours
def makeStudent(infoStr):
#返回学生对象
name,hours,qpoints = infoStr.split("\t")
return Student(name,hours,qpoints)
def main():
#打开输入文件
filename = raw_input("Enter name the grade file:")
infile = open(filename,'r')
best = makeStudent(infile.readline())
#处理文件剩余行数据
for line in infile:
#将每一行数据转换为一个记录
s = makeStudent(line)
#如果该学生是目前GPA最高的,则记录下来
if s.gpa()>best.gpa():
best = s
infile.close()
print("The best student is:",best.getName())
print("hours:",best.getHours())
print("GPA:",best.gpa())
if __name__=='__main__':
main()