python3 面向对象练习题训练
题目1:在终端输出如下信息 小明,18岁,男,开车去广州 小明,最喜欢运动 小明,去公司上班 小红,28岁,女,开车去广州 小红,最喜欢运动 小红,去公司上班 代码示例: class?People(object): ????def?__init__(self,?name,?age,?gender): ????????self.name?=?name ????????self.age?=?age ????????self.gender?=?gender ????def?drive(self): ????????print('{},{}岁,{},开车去广州'.format(self.name,?self.age,?self.gender)) ????def?sport(self): ????????print('{},最喜欢运动'.format(self.name,?self.gender)) ????def?work(self): ????????print('{},去公司上班'.format(self.name,?self.gender)) p1?=?People('小明',?'18',?'男') p2?=?People('小红','28','女') p3?=?People('小东','22','男') p1.drive() p1.sport() p1.work() p2.drive() p2.sport() p2.work() p3.drive() p3.sport() p3.work() 题目二:游戏人生程序 1、创建三个游戏人物,分别是: ????苍井井,女,18,初始战斗力1000 ????东尼木木,男,20,初始战斗力1800 ????波多多,女,19,初始战斗力2500 2、游戏场景,分别: ????草丛战斗,消耗200战斗力 ????自我修炼,增长100战斗力 ????多人游戏,消耗500战斗力 代码示例: class?Role(object): ????def?__init__(self,?gender,?vigor): ????????self.name?=?name ????????self.gender?=?gender ????????self.age?=?age ????????self.vigor?=?vigor ????def?action(self): ????????self.vigor?-=?200 ????????print('草丛战斗,消耗200战斗力,还剩下{}战斗力'.format(self.vigor)) ????def?online(self): ????????self.vigor?-=?500 ????????print('多人游戏,消耗500战斗力,还剩下{}战斗力'.format(self.vigor)) ????def?retreat(self): ????????self.vigor?-=?100 ????????print('自我修炼,消耗战斗力100,还剩下{}战斗力'.format(self.vigor)) r1?=?Role('苍井空',?'女',?18,?2500) r1.action() r1.online() r1.retreat() 题目三:定义一个学生类 有下面的类属性:? 1 姓名? 2 年龄? 3 成绩(语文,数学,英语)[每课成绩的类型为整数]? 类方法:? 1 获取学生的姓名:get_name() 返回类型:str? 2 获取学生的年龄:get_age() 返回类型:int? 3 返回3门科目中最高的分数。get_course() 返回类型:int? 写好类以后,可以定义2个同学测试下:? zm = Student('zhangming',20,[69,88,100])? 返回结果:? zhangming? 20? 100? 代码示例: class?Student(object): ????def?__init__(self,?grade): ????????self.name?=?name ????????self.age?=?age ????????self.grade?=?grade ????def?get_name(self): ????????return?self.name ????def?get_age(self): ????????return?self.age ????def?get_course(self): ????????grade?=?max(self.grade) ????????return?grade s1?=?Student('小明',?[90,?80,?70]) print(s1.get_name()) print(s1.get_age()) print(s1.get_course()) 题目四:定义一个字典类:dictclass。完成下面的功能: dict = dictclass({你需要操作的字典对象})? ????1 删除某个key? ????????del_dict(key)? ????2 判断某个键是否在字典里,如果在返回键对应的值,不存在则返回"not found"? ????????get_dict(key)? ????3 返回键组成的列表:返回类型;(list)? ????????get_key()? ????4 合并字典,并且返回合并后字典的values组成的列表。返回类型:(list)? ????????update_dict({要合并的字典})? 代码示例: class?Dictclass(object): ????def?del_dict(self,?dict,?key): ????????dict.pop(key) ????????return?dict ????def?get_dict(self,?key): ????????if?key?in?dict: ????????????return?dict[key] ????????else: ????????????return?'not?found' ????def?get_key(self,?dict): ????????return?list(dict) ????def?update_dict(self,?dic,?dic1): ????????#?合并字典 ????????dic?=?dict(dic,?**dic1) ????????return?list(dic.values()) d1?=?Dictclass() dic?=?{1:?'aa',?2:?'bb',?3:?'cc',?4:?'dd'} print(d1.del_dict(dic,?1)) print(d1.get_dict(dic,?2)) print(d1.get_key(dic)) print(d1.update_dict(dic,?{'a':?'aa',?'b':?'22'})) 题目五:定义一个列表的操作类:Listinfo? 包括的方法:? ????1 列表元素添加: add_key(keyname) ?[keyname:字符串或者整数类型]? ????2 列表元素取值:get_key(num) [num:整数类型]? ????3 列表合并:update_list(list) ? ? ?[list:列表类型]? ????4 删除并且返回最后一个元素:del_key()? ????list_info = Listinfo([44,222,111,333,454,'sss','333'])? 代码示例: class?Listinfo(object): ????def?__init__(self,?list): ????????self.list?=?list ????def?add_key(self,?keyname): ????????self.list.append(keyname) ????????return?self.list ????def?get_key(self,?num): ????????return?self.list[num] ????def?update_list(self,?lst): ????????if?isinstance(lst,?list): ????????????self.list.extend(lst) ????????????return?self.list ????def?del_key(self): ????????if?len(self.list)?>?0: ????????????return?self.list.pop() ????????else: ????????????return?'error' list_info?=?Listinfo([44,?222,?111,?333,?454,?'sss',?'333']) print(list_info.add_key('22222')) print(list_info.get_key(4)) print(list_info.update_list(['1',?'2',?'3'])) print(list_info.del_key()) 题目六定义一个集合的操作类:Setinfo? 包括的方法:? 1 集合元素添加: add_setinfo(keyname) ?[keyname:字符串或者整数类型]? 2 集合的交集:get_intersection(unioninfo) [unioninfo :集合类型]? 3 集合的并集: get_union(unioninfo)[unioninfo :集合类型]? 4 集合的差集:del_difference(unioninfo) [unioninfo :集合类型]? set_info = ?Setinfo(你要操作的集合)? 代码示例: class?Setinfo(object): ????def?__init__(self,?myset): ????????self.myset?=?myset ????def?add_set(self,?keyname): ????????if?isinstance(keyname,?(int,?str)): ????????????self.myset.add(keyname) ????????????return?self.myset ????????return?'error' ????def?get_intersection(self,?unioninfo): ????????if?isinstance(unioninfo,?set): ????????????return?self.myset?&?unioninfo ????????return?'error' ????def?get_union(self,?set): ????????????return?self.myset?|?unioninfo ????????return?'error' ????def?del_difference(self,?set): ????????????return?self.myset?-?unioninfo ????????return?'error' A?=?set([1,?2,?3,?4,?5,?2]) B?=?set([5,?6,?3]) set_info?=?Setinfo(A) print(set_info.add_set('f')) print(set_info.get_intersection(B)) print(set_info.get_union(B)) print(set_info.del_difference(B)) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |