python基础编程Day13:面向对象

时间:2019-01-18
本文章向大家介绍python基础编程Day13:面向对象,主要包括python基础编程Day13:面向对象使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

练习:
学生成绩管理系统

1.根据姓名查看学生所有成绩
2.查看所有人的某学科成绩
3.查看总平均分
4.查看某人的某学科成绩
5.根据姓名删除学生信息

简单版

class student:
    def get_score(self,name='',subject=''):
        self.name = name
        if name == '':
            if subject == '':
                print(scores.items)
            elif subject in subjects:
                for k in scores:
                    print(scores[k][subject])
            else:
                print('Not exists!')

        elif name in scores:
            if subject == None:
                print(scores[name])
            elif subject in scores[name]:
                print(scores[name][subject])
            else:
                print('Not exists!')
        else:
            print('Not exists!')

    def del_score(self,name):
        self.name = name
        if name in scores:
            scores.pop(name)

def get_aver():
    i, j, k, l = 0, 0, 0, 0
    global scores
    for key in scores:
        i += int(scores[key]['English'])
        j += int(scores[key]['math'])
        k += int(scores[key]['music'])
        l += 1

    print('英语平均分:%f' % (i / l))
    print('数学平均分:%f' % (j / l))
    print('音乐平均分:%f' % (k / l))
 
scores = {"Albert": {"English": 60, "math": 50, "music": 45}, "Karry": {"English": 95, "math": 45, "music": 55}, "Jay": {"English": 90, "math": 90, "music": 90}}
subjects = ["English", "math", "music"]
if __name__ == "__main__":
    stu = student()
    tag = True
    while tag:
        print('1.查看个人成绩\n2.查看学科成绩\n3.查看总平均分\n4.查看个人单科成绩\n5.删除成绩信息\n退出请按q')
        choice = input('请输入操作:')
        if choice == '1':
            name = input('请输入学生姓名:')
            stu.get_score(name)
            continue
        elif choice == '2':
            subject = input('请输入学科名:')
            stu.get_score(subject)
            continue
        elif choice == '3':
            get_aver()
            continue
        elif choice == '4':
            name = input('请输入学生姓名:')
            subject = input('请输入查询学科:')
            stu.get_score(name,subject)
            continue
        elif choice == '5':
            name = input('请输入需要删除信息的学生姓名:')
            stu.del_score(name)
            continue

        elif choice == 'q':
            tag = False
            break
        else:
            print('指令无效')


优化:待写