题目内容:
设计一个学生类(Student),其中的数据成员有:字符串类型sname表示录入的学生姓名,整型值mscore代表学生的数学成绩,整型值cscore代表学生的语文成绩,整型值escore代表学生的英语成绩。
然后要求根据录入的学生成绩(各不相同),输出总分最高的学生姓名和各科目成绩。
输入格式:
输入分为4个部分:
先输入学生姓名,以空格分隔;
然后输入学生的数学成绩(各不相同的正整数),也以空格分隔;
再输入学生的语文数学成绩(各不相同的正整数),也以空格分隔。
最后输入学生的英语数学成绩(各不相同的正整数),也以空格分隔。
学生姓名个数和成绩个数一定会相同。
输出格式:
共一行,为总分最高的学生姓名和各科目成绩,以空格分隔。
输入样例:
jack tom
95 84
90 75
85 90
输出样例:
jack 95 90 85
My answer
class Student:
def __init__(self, n, m, c, e):
self.n = n
self.m = m
self.c = c
self.e = e
self.total = m + c + e
def __lt__(self, other):
return self.total < other.total
def __str__(self):
return '%s %d %d %d' % (self.n, self.m, self.c, self.e)
sname = input().split()
mscore = list(map(int, input().split()))
cscore = list(map(int, input().split()))
escore = list(map(int, input().split()))
b = []
for i in range(len(sname)):
s = Student(sname[i], mscore[i], cscore[i], escore[i])
b.append(s)
b.sort()
print(b[-1])