python计算gpa_python问题。找GPA最大值,我是新手,麻烦大神了。

匿名用户

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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值