Python面向对象编程综合案例——子类的继承

本文介绍了如何在Python中使用面向对象编程创建一个父类Student和两个子类LevelSt和PassSt,通过继承父类实现成绩计算等级和判断通过的功能,并展示了如何创建和显示学生列表,按成绩和名字排序。
摘要由CSDN通过智能技术生成

一、案例分析:

1、定义一个父类Student和两个子类LevelSt和PassSt,在父类中定义两个实例变量,使子类继承父类的所有属性和方法,并各自定义根据成绩计算等级和判断是否通过的方法;
2、显示由LevelSt和PassSt类对象构成的学生成绩列表,以及所有学生名字和成绩,并按字典排列

二:代码解析:

#1、定义Student父类
class Student():
    def __init__(self,name = '',grade = 0):
        self.name = name
        self.grade = grade
    def show(self):
        print('%s\t  %s'%(self.name,self.calcLevel()))

#2(1)、定义Student子类(根据成绩计算等级)
class LevelSt(Student):
    def calcLevel(self):
        if self.grade >= 90:
            return 'A'
        elif self.grade >= 80:
            return 'B'
        elif self.grade >= 70:
            return 'C'
        elif self.grade >= 60:
            return 'D'
        else:
            return 'E'

#2(2)、定义Student子类(根据成绩判断是否通过)
class PassSt(Student):
    def calcLevel(self):
        if self.grade >= 60:
            return '通过'
        else:
            return '不通过'
#3、定义列表函数list_St存放学生数据
def list_St():
    listSt=[]
    is_continue='Y'
    while is_continue in ['Y','y','YES','yes']:
        name = input('请输入名字:')
        grade = float(input('请输入成绩:'))
        choice = input('请选择(L or P):')   #转换成大写
        if choice.upper()=='L':
            s=LevelSt(name,grade)
        else:
            s=PassSt(name,grade)
        listSt.append(s)                 #给列表listOfSt追加元素
        is_continue = input('继续?(y/n):')
        
    return listSt
#4、定义显示处理后的学生数据
def display(listSt):
    print('\n姓名  \t  等级')
    listSt.sort(key=lambda x:x.name,reverse = True)            #将列表元素按字典排列
    for each in listSt:
        each.show()


#5、定义主函数
def main():
    listSt = list_St()
    display(listSt)

#6、调用主函数
if __name__ == '__main__':
    main()

运行结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值