+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2020-04(13)

2020-05(33)

2020-06(30)

2020-07(39)

2020-08(46)

Python面向对象练习04

发布于2021-02-27 15:11     阅读(279)     评论(0)     点赞(5)     收藏(0)


0

1

2

3

4

5

6

7

8

学生类
类属性:学号、姓名、年龄、性别、成绩

班级类
属性:班级名称、班级中的学生[使用列表存储学生]

类方法:
1.查看该班级中的所有学生信息
2.查看指定学号的学生信息
3.查看班级中成绩不及格的学生信息
4.将班级中的学生按成绩降序排序

class Students(object):
    def __init__(self, s_id, s_name, age, gander, scores):
        self.id = s_id
        self.name = s_name
        self.age = age
        self.gander = gander
        self.scores = scores

    def __str__(self):
        return '学号:{},姓名:{},年龄:{},性别:{},成绩:{}'.format(self.id, self.name, self.age, self.gander, self.scores)


class Grade(object):
    def __init__(self, c_name, student_list=None):
        self.name = c_name
        if student_list is None:
            self.students = []
        self.students = student_list

    def show_all(self):
        if self.students is None:
            print('{}目前尚末开班...'.format(self.name))
            return
        for stu in self.students:
            print(stu)

    def get_id(self, num):

        # result = filter(lambda s: s.id == num, self.students)
        # for i in result:
        #     print(i)

        for i in self.students:
            if i.id == num:
                return i
        else:
            return '未查询到相关学生信息...'

    def get_failed(self):
        result = filter(lambda s: s.scores < 60, self.students)
        print('{}本次考核不合格同学如下:'.format(self.name))
        coun = 0
        for i in result:
            print(i)
            coun += 1
        print('合计:{}个'.format(coun))

    def order(self):
        # 方法一
        self.students.sort(key=lambda s: s.scores, reverse=True)
        for i in self.students:
            print(i)

        # 方法二
        print('#' * 40)
        sorted(self.students, key=lambda s: s.scores, reverse=True)


s1 = Students('001', 'ZhangSan', 20, '男', 98)
s2 = Students('002', 'HanMeiMei', '18', '女', 99)
s3 = Students('003', 'ErMao', '18', '女', 49)
s4 = Students('004', 'Tom', '18', '男', 59)
c1 = Grade('一(1)班', [s1, s2, s3, s4])

c1.show_all()
c1.get_failed()
c1.order()

print(c1.get_id('003'))

原文链接:https://blog.csdn.net/weixin_44602192/article/details/114001512

0

1

2

3

4



所属网站分类: 技术文章 > 博客

作者:898shd

链接: https://www.pythonheidong.com/blog/article/860097/7f4309a3c8fcd559c719/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

5 0
收藏该文
已收藏

评论内容:(最多支持255个字符)