me就是个弟弟 2021-11-23 21:12 采纳率: 100%
浏览 32
已结题

Python中的面向对象编程(继承)

img

本人Python小白 哪位大佬能提供一个代码或者思路

  • 写回答

1条回答 默认 最新

  • CSDN专家-showbo 2021-11-24 09:41
    关注

    总人数设置个静态变量,学生和老师实例放到对应数组中

    img

    
    class school:
        total=0
        def __init__(self,name,age):
            self.name=name
            self.age=age
            school.total+=1
    
    class teacher(school):
        def __init__(self, name, age,no,salary):
            school.__init__(self,name,age)
            self.no=no
            self.salary=salary
    
    class student(school):
        def __init__(self, name, age,no,score):
            school.__init__(self,name,age)
            self.no=no
            self.score=score
    
    def showinfo():
        print('当前学校有%s位成员,其中教师%s位,学生%s位'%(school.total,len(listt),len(lists)))
    
    listt=[]
    lists=[]
    
    name=input('新增教师')
    t=teacher(name,'','','')
    listt.append(t)
    showinfo()
    
    name=input('新增教师')
    t=teacher(name,'','','')
    listt.append(t)
    showinfo()
    
    name=input('新增学生')
    score=int(input('成绩'))
    s=student(name,'','',score)
    lists.append(s)
    showinfo()
    
    name=input('删除教师')
    t=list(filter(lambda i:i.name==name,listt))
    listt.remove(t[0])
    school.total-=1
    showinfo()
    
    name=input('新增学生')
    score=int(input('成绩'))
    s=student(name,'','',score)
    lists.append(s)
    showinfo()
    
    name=input('新增学生')
    score=int(input('成绩'))
    s=student(name,'','',score)
    lists.append(s)
    showinfo()
    
    sum=0
    for s in lists:
        sum+=s.score
    
    print('所有学生的平均成绩为%.2f'%(sum/len(lists)))
    

    有帮助或启发麻烦点下【采纳该答案】

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月5日
  • 已采纳回答 11月27日
  • 创建了问题 11月23日

悬赏问题

  • ¥15 iscsi服务无法访问,如何解决?
  • ¥15 感应式传感器制作的感应式讯响器
  • ¥15 如何使用SC92F8003固件库解析私有协议数据?
  • ¥15 如何在音频中嵌入字符串(水印)信息进行传递
  • ¥30 plc怎么以设计说明书申请软著
  • ¥15 硬盘识别不了,需要初始化,可我的数据怎么办
  • ¥15 lvm2被mask了,怎么unmask都没用(标签-ubuntu|关键词-apt)
  • ¥15 交叉注意力机制的残差问题
  • ¥15 微信小程序:渲染收货地址时页面不显示
  • ¥20 win7 64位DirectShow提示初始化失败如何解决?