python算法练习题

wendang

发布日期: 2020-09-22 10:21:02 浏览量: 157
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

冰其淋小店是一种特殊的餐馆

  • 编写一个名为IceCreamStand的类,让它继承你为完成练习1或练习4而编写的Restaurant类

  • 这两个版本Restaurant类都可以,挑选你更喜欢的那个即可

  • 添加一个名为flavors的属性,用于存储一个由各种口味的冰淇淋组成的列表

  • 编写一个显示这些冰淇淋的方法。创建一IceCreamStand实例,并调用这个方法

  1. from Restaurant import Restaurant
  2. class IceCreamStand(Restaurant):
  3. def __init__(self,restaurant_name,cuisine_type,flavors,number_served = 0):
  4. super(IceCreamStand, self).__init__(restaurant_name,cuisine_type,number_served = 0)
  5. self.flavor=flavors
  6. def getInfo(self):
  7. print('这家参观的名字是%s,特色菜是%s,冰欺凌的主要口味有%s'%(self.restaurant_name,self.cuisine_type,self.flavor))
  8. IceCreamStand1=IceCreamStand('海底捞','火锅',['火山岩','草莓味','奶油味'])
  9. IceCreamStand1.getInfo()

管理员是一种特殊的用户

  • 编写一个名为Admin的类,让它继承你为完成练习3或练习5而编写的User类

  • 添加一个名为privileges的属性,用于存储一个由字符串(如“can add post”、“can delete post”、“can ban user”等)组成的列表

  • 编写一个名为show_privileges()的方法,它显示管理员的权限,创建一个Admin实例,并调用这个方法

  1. from user import user
  2. class Admin(user):
  3. privileges=['can add post','can delete post','can ban user']
  4. def __int__(self,first_name,last_name,age,sex,phone,login_attempts=0):
  5. super(Admin, self).__int__(first_name,last_name,age,sex,phone,login_attempts=0)
  6. def show_privileges(self):
  7. print('管理员:%s%s有以下权限:'%(self.first_name,self.last_name))
  8. for i in Admin.privileges:
  9. print(i)
  10. admin1=Admin('su','san',18,'女','19999999999','上海')
  11. admin1.show_privileges()

亡者农药小游戏

  • 创建三个游戏人物,分别是:

    • 属性:
      • 名字:name
      • 定位:category
      • 血量:Output
      • 技能:Skill
    • 英雄
      • 铠,战士,血量:1000 技能:极刃风暴
      • 王昭君,法师 ,血量:1000 技能:凛冬将至
      • 阿轲,刺客,血量:1000 技能:瞬华
  • 游戏场景,分别:

    • 偷红buff,释放技能偷到红buff消耗血量300
    • solo战斗,一血,消耗血量500
    • 补血,加血200
  1. class hero():
  2. def __init__(self,name,category,skill,output=1000,score=0):
  3. self.name=name
  4. self.category=category
  5. self.skill=skill
  6. self.output=output
  7. self.score=score
  8. #战斗场景一 :偷红BUFF
  9. def red_buff(self):
  10. self.output-=300
  11. print('%s%s释放技能偷的红BUFF,消耗血量%d'%(self.category,self.name,self.output))
  12. # 战斗场景二 :solo
  13. def solo(self,n=1):
  14. self.output -= 500
  15. if self.output<0:
  16. print('%s%s送出了一血'%(self.category,self.name))
  17. else:
  18. if self.score==0:
  19. self.score+=n
  20. print('%s%s释放技取得一血,消耗血量500,拿到%d人头'%(self.category, self.name,self.score))
  21. else:
  22. self.score += n
  23. print('%s%s释放技,消耗血量500,拿到%d人头' % (self.category, self.name,n))
  24. # 战斗场景三 :补血
  25. def add_blood(self):
  26. self.output+=200
  27. print('%s%s被辅助加血200,现在的血量为%d'%(self.category, self.name,self.output))
  28. #查看英雄属性
  29. def getInfo(self):
  30. if self.output<=0:
  31. print('%s%s已死亡等待复活,已取得人头%d'%(self.category, self.name,self.score))
  32. else:
  33. print('%s%s已超神,血量还有%d'%(self.category, self.name,self.output))
  34. #实例化对象
  35. kai=hero('凯','战士','极寒风暴')
  36. kai.red_buff()
  37. kai.getInfo()
  38. kai.solo()
  39. kai.getInfo()
  40. kai.add_blood()

模拟一个简单的银行进行业务办理的类

  • 类:创建一个银行类

  • 属性:

    • 一个属于银行的类属性,用来存储所用银行的开户信息,包含卡号、密码、用户名、余额(外界不能随意访问和修改。开户时要进行卡号验证,查看卡号是否已经存在)
    • 每个对象拥有卡号、密码、用户名、余额(外界不能随意访问和更改)
  • 方法:

    • 银行类拥有:
      • 查看本银行的开户总数
      • 查看所有用户的个人信息(包含卡号、密码、用户名、余额)
    • 每个对象拥有:
      • 实例化对象的时候传入相关参数,初始化对象及类属性
      • 取钱(需要卡号和密码验证),通过验证卡号和密码对个人的余额进行操作,如果取钱大于余额,返回余额不足
      • 存钱(需要卡号和密码验证),通过验证卡号和密码对个人的余额进行操作,返回操作成功
      • 查看个人详细信息(需要卡号密码验证),返回个人的卡号,用户名,余额信息
  1. class Bank():
  2. #一个属于银行的类属性
  3. __Users = {}
  4. #每个对象拥有 卡号、密码、用户名、余额
  5. def __init__(self,CradId,pwd,name,balance):
  6. if CradId not in Bank.__Users:
  7. Bank.__Users[CradId] = {'pwd':pwd,'Username':name,'Balance':balance}
  8. self.__CradId = CradId
  9. self.__pwd = pwd
  10. self.__name = name
  11. self.__balance = balance
  12. #查看本银行的开户总数
  13. @classmethod
  14. def nums(cls):
  15. print('当前用户数:%d'%(len(cls.__Users)))
  16. #查看所有用户的个人信息(包含卡号、密码、用户名、余额)
  17. @classmethod
  18. def get_Users(cls):
  19. for key,val in cls.__Users.items():
  20. print('卡号:%s \n 用户名:%s \n密码:%d \n 余额:%d'%(key,val['Username'],val['pwd'],val['Balance']))
  21. print()
  22. #验证方法
  23. @staticmethod
  24. def check_User(CradId,pwd):
  25. if (CradId in Bank.__Users) and (pwd == Bank.__Users[CradId]['pwd'] ):
  26. return True
  27. else:
  28. return False
  29. #验证金额
  30. @staticmethod
  31. def check_money(money):
  32. if isinstance(money,int):
  33. return True
  34. else:
  35. return False
  36. # 取钱(需要卡号和密码验证)
  37. def q_money(self,CradId,pwd,money):
  38. if Bank.check_User(CradId,pwd):
  39. #开始取钱
  40. if Bank.check_money(money):
  41. if Bank.__Users[CradId]['Balance'] >= money:
  42. Bank.__Users[CradId]['Balance'] -= money
  43. print('当前卡号%s,当前取款金额%d,当前余额%d'%(CradId,money,Bank.__Users[CradId]['Balance']))
  44. else:
  45. print('余额不足')
  46. else:
  47. print('您输入的金额有误')
  48. else:
  49. print('卡号或者密码有误')
  50. def c_money(self,CradId,pwd,money):
  51. if Bank.check_User(CradId,pwd):
  52. #开始取钱
  53. if Bank.check_money(money):
  54. Bank.__Users[CradId]['Balance'] += money
  55. print('当前卡号%s,当前存款金额%d,当前余额%d'%(CradId,money,Bank.__Users[CradId]['Balance']))
  56. else:
  57. print('您输入的金额有误')
  58. else:
  59. print('卡号或者密码有误')
  60. #查看个人详细信息(需要卡号密码验证)
  61. def getInfo(self,CradId,pwd):
  62. if Bank.check_User(CradId, pwd):
  63. print('当前卡号%s,当前用户名%s,当前余额%d' % (CradId, Bank.__Users[CradId]['Username'], Bank.__Users[CradId]['Balance']))
  64. else:
  65. print('卡号或者密码有误')
  66. joe = Bank('1001',111111,'joe',100)
  67. joe2 = Bank('1001',111111,'joe',100)
  68. Bank.nums()
  69. print('_'*50)
  70. Bank.get_Users()
  71. print('_'*50)
  72. joe.c_money('1001',111111,500)
  73. print('_'*50)
  74. joe.q_money('1001',111111,300)
  75. print('_'*50)
  76. joe.getInfo('1001',111111)
上传的附件

发送私信

2
文章数
0
评论数
最近文章
eject