利用类计算学生成绩和排序
描述:
有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩) 样例输入: 2 1 blue 90 80 70 b clan 80 70 60 样例输出: 85 75 65 1 blue 90 80 70
分析:
这一题我主要卡在: 1. 对python类使用不熟悉; 2. 不知道怎么把多个student加入列表和怎么遍历student
代码:
class Student: #定义学生类
def inputs(self,number,name,score):
self.number=number
self.name=name
self.a=int(score[0])
self.b=int(score[1])
self.c=int(score[2])
#将创建的学生类append列表中
stulis=[]
n=int(input())
for i in range(n):
st=Student()
s=list(input().split())
st.inputs(s[0],s[1],s[2:])
stulis.append(st)
#求每种成绩的总分
sum1=[0]*3
for i in stulis:
sum1[0]+=i.a
sum1[1]+=i.b
sum1[2]+=i.c
#找最高分学生
m=stulis[0].a+stulis[0].b+stulis[0].c
index=0
for i in range(n):
if stulis[i].a+stulis[i].b+stulis[i].c>m:
m=stulis[i].a+stulis[i].b+stulis[i].c
index=i
#输出
print('{:.0f} {:.0f} {:.0f}'.format(sum1[0]/n,sum1[1]/n,sum1[2]/n))
print('{} {} {} {} {}'.format(stulis[index].number,stulis[index].name,stulis[index].a,stulis[index].b,stulis[index].c))