首页 > 编程语言 >学生成绩管理--Python

学生成绩管理--Python

时间:2024-12-15 17:32:55浏览次数:5  
标签:__ avg -- self Python ls 成绩 78

定义学生类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

相关文章

  • 在 MySQL 中存储金额数据,应该使用什么数据类型?
    在MySQL中存储金额数据时,最推荐使用DECIMAL类型(有时也叫做NUMERIC)。DECIMAL类型是一种精确的数字类型,适合存储具有小数位的金额数据,因为它不会像浮点数类型那样受到精度丢失的问题。DECIMAL类型的优点:高精度:DECIMAL类型能够精确存储货币值,避免浮动的误差。定义小数位数:......
  • lang.IllegalStateException_ Type handler was null on parameter mapping for prope
    在使用mybatis-plus的removeIds()方法时抛出此异常。在调用的时候传入了实体类对象的list的集合使用id的集合即可List<PojoInfo>totalList;//错误用法service.removeByIds(totalList);//正确用法List<Long>idList=totalList.stream().map(PojoInfo::getId).collec......
  • 什么是数据库的视图?
    在数据库中,视图(View)是一种虚拟的表,它是通过查询从一个或多个基本表中派生出来的结果集。视图并不实际存储数据,而是存储SQL查询,查询的结果会在视图被调用时动态生成。视图的作用类似于一个存储的查询,可以简化复杂的查询操作,提供数据的安全性,并且可以为用户提供定制化的视图。视图......
  • 超大规模数据库集群保稳系列:数据库攻防演练建设实践12
     01背景1.1初识混沌工程首先我们先了解一下什么是混沌工程?简单而言,混沌工程是在系统上进行实验的技术手段,目的是建立对系统抵御生产环境中失控条件的能力以及信心。这主要体现在两个方面,从系统角度来讲,混沌工程可以提升我们架构的容错能力和韧性,降低故障发生率和复发率,提......
  • 洛谷P3389 【模板】高斯消元法 高斯消元模板题
    题目链接:https://www.luogu.com.cn/problem/P3389题目大意:略解题思路:略(因为是模板题)示例程序:#include<bits/stdc++.h>usingnamespacestd;constintmaxn=110;constdoubleeps=1e-7;intn;doublea[maxn][maxn];boolgauss(){for(inti=1;i<=n;i++......
  • 超大规模数据库集群保稳系列:数据库攻防演练建设实践6
     01背景1.1初识混沌工程首先我们先了解一下什么是混沌工程?简单而言,混沌工程是在系统上进行实验的技术手段,目的是建立对系统抵御生产环境中失控条件的能力以及信心。这主要体现在两个方面,从系统角度来讲,混沌工程可以提升我们架构的容错能力和韧性,降低故障发生率和复发率,提......
  • 什么是数据库的游标?
    在数据库中,游标(Cursor)是一个数据库对象,用于逐行处理查询结果集。游标使得程序可以在查询结果中按顺序访问每一行数据,并对每一行进行操作。通常,游标用于需要逐行处理查询结果的场景,例如在存储过程中逐条处理数据。游标的特点:逐行处理:游标允许你按顺序逐行处理查询结果集,而不像普......
  • 为什么不推荐在 MySQL 中直接存储图片、音频、视频等大容量内容?
    在MySQL中直接存储图片、音频、视频等大容量内容(通常称为BLOB数据)通常不被推荐,主要原因包括以下几点:1.性能问题存储效率:存储大容量文件(如图片、音频、视频等)会大幅增加数据库的存储负担。每次查询或插入时,处理这些大容量数据会消耗大量的I/O资源,可能导致数据库性能下降。数据......
  • 【线性表】顺序表
         目录1.顺序表2. 顺序表的存储结构3.顺序表的基本操作3.1顺序表的初始化3.2顺序表的取值 3.3顺序表的查找3.4顺序表的插入3.5顺序表的删除运行效果1.顺序表线性表的顺序表指的是一组地址连续的存储单元依次存储线性表的数据元素,这种表示也......
  • MySQL 中 VARCHAR(100) 和 VARCHAR(10) 的区别是什么?
    在MySQL中,VARCHAR(100)和VARCHAR(10)都是变长字符串类型,但它们的主要区别在于能够存储的最大字符长度不同:1.存储长度VARCHAR(100):表示该字段可以存储最多100个字符(根据字符集的不同,一个字符可能占用1到多个字节)。如果存储的数据长度小于100个字符,MySQL只会占用实际......