Python程序设计教程 习题及答案 习题10-习题解答_第1页
Python程序设计教程 习题及答案 习题10-习题解答_第2页
Python程序设计教程 习题及答案 习题10-习题解答_第3页
Python程序设计教程 习题及答案 习题10-习题解答_第4页
Python程序设计教程 习题及答案 习题10-习题解答_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

习题10一、选择题1.下列关于“类”和“对象”的描述,正确的是()。A.类是具体事物,对象是抽象概念 B.类是对象的实例C.对象是类的实例 D.类和对象是完全相同的概念2.在类的方法定义中,第一个参数通常为self,它的作用是()。A.表示全局变量 B.表示当前模块名C.表示类本身 D.表示当前对象3.下列哪项体现了“封装”的理念?()A.使用多个类组织代码 B.通过方法访问和修改对象属性C.不编写类也能进行面向对象编程 D.将多个对象放在列表中4.下列关于继承的说法正确的是()。A.子类只能继承父类的方法,不能继承属性B.子类自动继承父类的属性和方法C.父类必须继承子类D.Python不支持继承5.在子类中重写父类方法的目的通常是()。A.删除父类所有功能 B.隐藏父类的数据属性C.扩展或改变父类方法的行为 D.让两个类完全无关6.使用super()的主要目的是()。A.创建新对象 B.在类外访问私有属性C.调用父类的方法 D.删除父类代码二、编程题1.在类Rectangle中定义方法计算矩形面积和周长,创建对象并输出结果。2.定义一个类Car,包含品牌(brand)和速度(speed)属性,提供方法accelerate()和brake(),实现加速与减速功能。3.定义一个类Counter,内部包含私有属性__count,并提供方法increment()和get_count()实现封装访问。4.定义父类Animal,包含方法speak();再定义子类Dog和Cat重写speak()方法,并演示多态效果。5.使用super()完善一个继承结构:定义父类Person,子类Teacher在__init__中调用父类构造方法并新增科目属性。6.定义一个类Book,实现__str__方法,使得打印对象时能显示“书名:XXX,作者:YYY”。7.综合练习:编写一个简易学生管理系统类StudentManager,支持:添加学生、删除学生、查询学生、打印所有学生信息,要求学生信息用字典或对象存储均可。一、选择题答案+解析答案:C解析:类是抽象模板,对象是类创建出的实例。答案:D解析:self代表当前实例对象,是类中方法的第一个形参。答案:B解析:封装核心是隐藏属性,通过公开方法操作属性,控制访问。答案:B解析:子类会自动继承父类所有公有属性和方法,Python支持继承。答案:C解析:方法重写是在子类中重新实现方法,用来拓展/改写原有逻辑。答案:C解析:super()用于在子类中调用父类的构造方法或普通方法。二、编程题(Python完整代码)1.矩形类:计算面积、周长classRectangle:def__init__(self,width,height):self.width=widthself.height=height#计算面积defget_area(self):returnself.width*self.height#计算周长defget_perimeter(self):return2*(self.width+self.height)#创建对象并测试rect=Rectangle(3,5)print("矩形面积:",rect.get_area())print("矩形周长:",rect.get_perimeter())2.汽车类:加速、减速classCar:def__init__(self,brand,speed=0):self.brand=brandself.speed=speed#加速defaccelerate(self,num):self.speed+=numprint(f"{self.brand}加速,当前速度:{self.speed}")#减速defbrake(self,num):#速度不小于0self.speed=max(0,self.speed-num)print(f"{self.brand}减速,当前速度:{self.speed}")#测试car1=Car("比亚迪")car1.accelerate(40)car1.brake(15)car1.brake(30)3.计数器类(私有属性+封装)classCounter:def__init__(self):self.__count=0#私有属性#计数自增defincrement(self):self.__count+=1#获取私有属性值defget_count(self):returnself.__count#测试c=Counter()c.increment()c.increment()print("当前计数:",c.get_count())4.父类Animal+子类Dog、Cat,实现多态classAnimal:defspeak(self):passclassDog(Animal):defspeak(self):print("汪汪汪")classCat(Animal):defspeak(self):print("喵喵喵")#多态演示defanimal_speak(ani):ani.speak()dog=Dog()cat=Cat()animal_speak(dog)animal_speak(cat)5.继承+super()调用父类构造方法classPerson:def__init__(self,name,age):=nameself.age=ageclassTeacher(Person):def__init__(self,name,age,subject):#调用父类构造方法super().__init__(name,age)self.subject=subject#子类新增属性defshow_info(self):print(f"姓名:{},年龄:{self.age},任教科目:{self.subject}")#测试t=Teacher("张老师",38,"数学")t.show_info()6.重写str方法classBook:def__init__(self,title,author):self.title=titleself.author=author#重写字符串方法def__str__(self):returnf"书名:{self.title},作者:{self.author}"#测试b=Book("Python编程","李四")print(b)7.简易学生管理系统类classStudentManager:def__init__(self):self.student_list=[]#存储学生字典#添加学生defadd_student(self,name,sid,score):stu={"name":name,"sid":sid,"score":score}self.student_list.append(stu)print("添加学生成功")#删除学生(按学号删除)defdel_student(self,sid):forstuinself.student_list:ifstu["sid"]==sid:self.student_list.remove(stu)print("删除学生成功")returnprint("未找到该学生")#查询学生(按学号)defquery_student(self,sid):forstuinself.student_list:ifstu["sid"]==sid:print(f"姓名:{stu['name']},学号:{stu['sid']},成绩:{stu['score']}")returnprint("未找到该学生")#打印所有学生defshow_all(self):ifnotself.student_list:print("暂无学生信息")returnprint("=====所有学生信息=====")forstuinself.student_list:print(f"姓名:{stu['name']},学号:{stu['

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论