python闯关_Day015
第15章,对象
1. 什么是面向对象编程
2. 所有程序都因该使用面向对象来设计吗?为什么?
3. 什么是对象 什么是类
4. 在面向过程编程中我们思考解决方案时,是分析完成任务时需要哪些步骤,按照什么样的顺序来编写,而在面向对象编程中我们从操作者转变为指挥者 首先思考的是什么?
5. 一个类中通常包含变量和函数,它们分别用于描述什么?
6. 类在定义阶段发生了什么
7. 创建对象时发生了什么
8. 程序设计:(如果写不出来就往后面看一章) 学生成绩管理系统
1.根据姓名查看学生所有成绩
2.查看所有人的某学科成绩
3.查看总平均分
4.查看某人的某学科成绩
5.根据姓名删除学生信息
===================================
1.面向对象编程
以对象为核心关注点,编程均围绕着对象的相关特性展开
2.不是所有的程序建议用面向对象的方式编程,比如很简单的程序,以及流程明显、并不侧重交互的程序,不建议用对象编程
3.先定义类,再由类产生实例(对象)
4.调用类的步骤
首先产生一个空对象,比如stu1
自动触发类内部__init__函数的执行
然后将空对象stu1连同调用类时括号内的参数组成(比如,stu1,"李坦克",18,'male'),将这四个参数一起传给__init__函数
5.变量描述属性,函数供述行为或方法
6.类的定义阶段:
创建命名空间,并执行代码,运行类体代码,将类体代码运行产生的名字放入名称空间
7.创建对象时
再次创建一个命名空间,并把空间的地址返回给对象变量
8. 编程题
''' 1.根据姓名查看学生所有成绩 2.查看所有人的某学科成绩 3.查看总平均分 4.查看某人的某学科成绩 5.根据姓名删除学生信息 ''' class student: school = 'deepshare' def __init__(self,name,NianJi,ShuXue,YuWen): self.name = name self.NianJi = NianJi self.ShuXue = ShuXue self.YuWen = YuWen def get_name(self): return self.name def get_NianJi(self): return self.NianJi def get_ShuXue(self): return self.ShuXue def get_YuWen(self): return self.YuWen def print_all_score(self): print('%s的数学成绩:%3d,语文成绩:%3d'%(self.name, self.ShuXue, self.YuWen)) def print_one_score(self,subject): if subject == 'ShuXue': print ('%s的数学成绩:%3d'%(self.name, self.ShuXue)) elif subject == 'YuWen': print('%s的语文成绩:%3d'%(self.name, self.YuWen)) stu1 = student('张三',1,100,90) stu2 = student('李四',2,90,100) stu = {stu1, stu2} print (type(stu)) #查看所有成绩 for astu in stu: astu.print_all_score() print ('='*20) # 查看所有人的某学科成绩 for astu in stu: astu.print_one_score('ShuXue') print ('='*20) # .查看总平均分 total = 0 num = 0 for astu in stu: total += astu.get_ShuXue() total += astu.get_YuWen() num += 2 print('总平均分',total/num) print ('='*20) #4.查看某人的某学科成绩 name = '张三' xueke = 'ShuXue' for astu in stu: if name == astu.get_name(): astu.print_one_score(xueke)