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)

  

  

原文地址:https://www.cnblogs.com/marathoner/p/10284342.html