Python面向对象练习题

安杨 2021-04-07 16:26:18
Python 面向对象 对象 面向 练习题


1.模拟栈操作原理
先进后出
​1.初始化(创建一个存储数据的列表)
2.进栈使用列表保存数据
​ 3.出栈 使用列表删除数据
​ 4.查看栈顶元素 切片获取列表最后一位数据
​5.判断是否为空栈
6.栈的长度

程序
stack=[]
info="""
********栈操作******
1.入栈
2.出栈
3.栈顶元素
4.栈的长度
5.栈是否为空
"""
while True:
print(info)
choice=input("please input your choice:")
if choice=='1':
item=input('请输入入栈元素:')
stack.append(item)
print('%s入栈成功!'%item)
elif choice=='2':
if not stack:
print('栈为空,不能出栈!')
else:
item=stack.pop()
print('%s出栈成功!'%item)
elif choice=='3':
if len(stack)==0:
print('栈为空!')
else:
print('栈顶元素为:%s'%stack[-1])
elif choice=='4':
print('栈的长度为%s'%len(stack))
elif choice=='5':
if len(stack)==0:
print('栈为空!')
else:
print('栈不为空!')
elif choice=='q':
print('logout')
break
else:
print('Error:check your input!')

输出结果:

********栈操作******
1.入栈
2.出栈
3.栈顶元素
4.栈的长度
5.栈是否为空
please input your choice:1
请输入入栈元素:2
2入栈成功!
********栈操作******
1.入栈
2.出栈
3.栈顶元素
4.栈的长度
5.栈是否为空
please input your choice:

2.家具

1.房子有户型,总面积和家具名称列表,新房子没有任何的家具
2.家具有名字和占地面积,其中
床: 占4平米 衣柜: 占2平面 餐桌: 占1.5平米 3.将以上三件家具添加到房子中 4.打印房子时,要求输出:户型,总面积,剩余面积,家具名称列表 分析: 1.由于要将家具放入房子中,所以需要先创建家具类 2.家具类: (1)属性:名字(name),占地面积(area) (2)对象:床(bed),衣柜(closet),餐桌(table) 3.房子类: (1)属性:户型(house_style),总面积(zarea), 家具名称列表(namelist) (新房子没有任何的家具,即初始家具名称列表为空列 表) 剩余面积(farea) (由于打印房子时,要求输出'剩余面积',所以剩余面积为房子 的隐含属性) (2)方法:添加家具(add_item)
class HouseItem:
def __init__(self, name, area):
self.name = name
self.area = area
def __str__(self):
return "[%s] 占地 %.2f" % (self.name, self.area)
class House:
def __init__(self, house_type, area):
self.house_type = house_type
self.area = area
self.free_area = area
self.item_list = []
def __str__(self):
# python能够自动的将一对括号内部的代码连接在一起
return ("户型: %s\n总面积: %.2f[剩余: %.2f]\n家具:%s"
%(self.house_type, self.area,
self.free_area, self.item_list))
def add_item(self, item):
print("要添加 %s" % item)
if item.area > self.free_area:
print("%s的面积太大了,无法添加" % item.name)
return
self.item_list.append(item.name)
self.free_area -= item.area
bed = HouseItem("床", 4)
chest = HouseItem("衣柜", 2)
table = HouseItem("餐桌", 1.5)
print(bed)
print(chest)
print(table)
my_home = House("两室一厅", 60)
my_home.add_item(bed)
my_home.add_item(chest)
my_home.add_item(table)
print(my_home)

 

3.
​ 1.士兵瑞恩有一把AK47
​ 2.士兵可以开火(士兵开火扣动的是扳机)
​ 3.枪 能够 发射子弹(把子弹发射出去)
​ 4.枪 能够 装填子弹 --增加子弹的数量
​ Soldier Gun
------------- -----------------
​ name model
​ gun bullet_count #子弹数量足够多才能完成射击的动作
------------- -----------------
​ __init__(self): __init__(self):
​ fire(self): add_bullet(self,count):#装填子弹的
​ shoot(self):
分析:
1.由于士兵瑞恩有一把AK47,士兵可以开火。故需要先创建枪类
2.枪类(Gun):
(1)属性:型号(model),子弹数目(bullet_count)
(2)方法:发射子弹(shoot),装填子弹(add_bullet)
3.士兵类(Soldier)
(1)属性:姓名(name),枪名(Gun)
(2)方法:开火(fire)

class Gun: #Gun枪
def __init__(self, model):
self.model = model
self.bullet_count = 0
def add_bullet(self, count):
self.bullet_count += count
def shoot(self):
if self.bullet_count <= 0:
print("[%s没有子弹了..." % self.model)
return
self.bullet_count -= 1
print("[%s]突突突...[%d]" % (self.model, self.bullet_count))
class Soldier:
def __init__(self,name):
self.name = name
self.Gun = Gun
def fire(self):
if self.Gun is None:
print("[%s]还有枪..." % self.name)
return
print("冲啊炮灰们...[%s]" % self.name)
self.Gun.add_bullet(50)
self.Gun.shoot()
AK47 = Gun("AK47")
xusandou = Soldier("士兵")
xusandou.Gun = AK47
xusandou.fire()
print(xusandou.Gun)

 

 

 


 

版权声明
本文为[安杨]所创,转载请带上原文链接,感谢
https://www.cnblogs.com/Xanyang/p/14628170.html

  1. 用 Python 读写 Excel 表格
  2. Python装饰器高级用法
  3. Reading and writing excel table with Python
  4. Python decorator advanced usage
  5. 从零开始学python | 什么是Python JSON?
  6. Learn Python from scratch | what is Python JSON?
  7. Python with关键字原理详解
  8. Python with keyword principle
  9. python + uiautomator2 实现钉钉工单提交
  10. 一个神级般的 Python 调试神器
  11. Nail work order submission based on Python + uiautomator2
  12. A magic Python debugging artifact
  13. 从零开始学python | 什么是Python JSON?
  14. Learn Python from scratch | what is Python JSON?
  15. 上手Pandas,带你玩转数据(3)-- pandas数据存入文件
  16. Start pandas, take you to play with data (3) -- save pandas data into file
  17. Python能代替shell吗?有什么特点?
  18. Can Python replace shell? What are the features?
  19. Scikit-learn 机器学习库介绍!【Python入门】
  20. Scikit learn machine learning library introduction! [introduction to Python]
  21. 【Python从零到壹】面向对象的封装,继承和多态
  22. Scikit-learn 机器学习库介绍!【Python入门】
  23. Python能代替shell吗?有什么特点?
  24. 【Python从零到壹】Python文件的操作详解
  25. 【Python从零到壹】Python爬虫部分开篇
  26. 【Python从零到壹】学习Python爬虫前,你需要先掌握这些内容
  27. 【Python从零到壹】python爬虫系列-网络请求
  28. Object oriented encapsulation, inheritance and polymorphism
  29. Python经典面试题(附答案)!
  30. Scikit learn machine learning library introduction! [introduction to Python]
  31. 菜谱系统小成阶段,Python Web 领域终于攻占一个小山头
  32. Python Web 菜谱项目再次前进一步,从应用层了解内置用户认证系统
  33. Can Python replace shell? What are the features?
  34. Detailed explanation of Python file operation
  35. Python from zero to one
  36. [Python from zero to one] before learning Python crawler, you need to master these contents
  37. [Python from zero to one] Python crawler series - web request
  38. Python经典面试题(附答案)!
  39. Python classic interview questions (with answers)!
  40. When the recipe system was in its infancy, python web finally took over a small hill
  41. Python web menu project takes another step forward to learn about the built-in user authentication system from the application layer
  42. Python classic interview questions (with answers)!
  43. 【Python从零到壹】Python的循环结构详解
  44. 【Python从零到壹】Python列表详解
  45. 【Python从零到壹】Python的字典详解
  46. 【Python从零到壹】Python的字符串详解
  47. 【Python从零到壹】Python基础之函数的应用
  48. 【Python从零到壹】用Python实现植物大战僵尸里的面向对象
  49. Detailed explanation of Python loop structure
  50. Detailed explanation of Python list
  51. Detailed explanation of Python dictionary
  52. Detailed explanation of Python string
  53. [Python from zero to one] the application of Python basic functions
  54. [Python from zero to one] using Python to realize object-oriented in plant vs. zombie
  55. 用 Python 实现微信版飞机大战
  56. 用 Python 实现***帝国中的数字雨落既视感
  57. 想知道未来孩子长相?Python人脸融合告诉你
  58. 我用 Python 做了一个全球疫情数据大屏
  59. Using Python to realize wechat aircraft war
  60. Using Python to realize the visual sense of digital rain in the Empire of the Communist Party of China