定义学生类Student:
(1) 定义构造函数,有学号、姓名、三门课成绩,并在此构造函数中计算三门课的平均分。
(2) 重写方法 _ lt _ (),根据平均成绩排序降序,平均成绩相同,按第一门课成绩降序。
(3) 重写方法_ str _(),设置输出格式,输出数据顺序 : 学号 姓名 第一门课成绩 第二门课成绩 平均成绩,每个数据之间用空格分隔,最后一个数据没有空格。平均成绩保留2位小数。
从键盘输入n 个学生的信息,将这n个学生按平均成绩降序排列,当平均成绩相同时,按第一门课成绩降序。输出排序后的学生信息,每行一个学生信息。
函数接口定义:
在这里描述类的定义。例如: class Student:
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如: /* 请在这里填写答案 */ n = int(input()) student = [] for i in range(n): ls = input().split() student.append(Student(ls[0],ls[1],eval(ls[2]),eval(ls[3]),eval(ls[4]))) student.sort() for st in student: print(st)
输入样例:
在这里给出一组输入。数据之间用空格分隔。例如:
6
20200101 王刚 72 83 82
20200102 李小明 88 92 78
20200103 王小红 98 72 89
20200104 陈来北 87 95 78
20200105 刘亚 89 91 78
20200106 刘力 90 90 78
输出样例:
在这里给出相应的输出。例如:
20200104 陈来北 87 95 78 86.67
20200103 王小红 98 72 89 86.33
20200106 刘力 90 90 78 86.00
20200105 刘亚 89 91 78 86.00
20200102 李小明 88 92 78 86.00
20200101 王刚 72 83 82 79.00
源码
class Student:
def __init__(self,sno,name,a,b,c):
self.sno=sno
self.name=name
self.a=a
self.b=b
self.c=c
self.avg=(a+b+c)/3
def __lt__(self,other):
if self.avg!=other.avg:
return self.avg>other.avg
else :
return self.a>other.a
def __str__(self):
return "{} {} {} {} {} {:.2f}".format(self.sno,self.name,self.a,self.b,self.c,self.avg)
标签:__,avg,--,self,Python,ls,成绩,78
From: https://blog.csdn.net/guoweixiancai/article/details/144489429