加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python3 面向对象练习题训练

发布时间:2020-12-17 16:59:08 所属栏目:Python 来源:网络整理
导读:题目1:在终端输出如下信息 小明,18岁,男,开车去广州 小明,最喜欢运动 小明,去公司上班 小红,28岁,女,开车去广州 小红,最喜欢运动 小红,去公司上班 代码示例: class?People(object):????def?__init__(self,?name,?age,?gender):????????self.name?=?name???

题目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))


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读