Day7

1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明)

class Student(dict):
    name: str = str()
    age: int = int()
    grade: int = int()
    cell_number: str = str()
    sex: int = int()

    def __init__(self, **kwargs):
        self.set_attr(**kwargs)

    def set_attr(self, **kwargs):
        for key, val in kwargs.items():
            if hasattr(self, key):
                setattr(self, key, val)
        return self

2.声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)
a.统计不及格学生的个数
b.打印不及格学生的名字和对应的成绩
c.统计未成年学生的个数
d.打印手机尾号是8的学生的名字
e.打印最高分和对应的学生的名字
f.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
​ g.删除性别不明的所有学生

class Students:

    result: dict = {
        'count': 0,
        'source': []
    }

    def __init__(self):
        self.students = []

    def fill(self, students: list) -> None:
        if students:
            self.students = [Student(**each) for each in students]

    def select(self, keys: str, rule: object = None) -> dict:
        """

        :param keys: 存放查询规则,格式如下
                    (需要筛选的字段,)
        :param rule: 筛选规则
        :return: 返回满足条件的结果
        """
        if not rule or not isinstance(keys, str):
            return None

        result = [filter(rule(getattr(student, keys, None)) for student in self.students)]

        self.result['count'] = len(result)
        self.result['source'] = result

        return self.result

3.用三个列表表示三门学科的选课学生姓名(一个学生可以同时选多门课)
a. 求选课学生总共有多少人
b. 求只选了第一个学科的人的数量和对应的名字
c. 求只选了一门学科的学生的数量和对应的名字
d. 求只选了两门学科的学生的数量和对应的名字
e. 求选了三门学生的学生的数量和对应的名字

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明) 2.声...
    风中逐月fzzy阅读 216评论 0 0
  • 1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明) 2.声...
    ______n___阅读 169评论 0 0
  • 1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明) 2.声...
    略略略_29fd阅读 280评论 0 0
  • 1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明) 2.声...
    风月辞寒阅读 213评论 0 0
  • 还有六天它就一周岁了,这一年它提供了我想知道你一切;每天叫早;记录每天的春耕、成长、每笔捐助;保存了每个美好的瞬间...
    吕明超阅读 66评论 0 0