当前位置: 首页 > ds >正文

python 练习 二

构造银行卡类

属性:

  1. 用户编码
  2. 信用卡授信额度
  3. 当前额度
  4. 单次刷卡上限

方法:

  1. 获取全部属性和值
  2. 修改授信额度
  3. 用户刷卡,刷卡金额小于单次刷卡上限,小于当前额度

import jsonclass BankCard():def __init__(self,userCode,lineOfCredit,timesMaxMoney):self.userCode = userCode #用户编码self.lineOfCredit = lineOfCredit #授信限额self.money = lineOfCredit #剩余金额self.timesMaxMoney = timesMaxMoney #单日刷卡上限def toString(self):objData = {'userCode':self.userCode,'lineOfCredit':self.lineOfCredit,'money':self.money,'timesMaxMoney':self.timesMaxMoney,}  objJson = json.dumps(objData)return objJsondef setLineOfCredit(self,lineOfCredit):self.money = lineOfCreditdef changeMoney(self,money):#刷卡if money>self.timesMaxMoney:print("大于单日刷卡上限金额[{0}]".format(self.timesMaxMoney))return Falseif money>self.money:print("大于用户剩余金额[{0}]".format(self.money))return Falseself.money -= moneyprint("用户剩余金额:{0}".format(self.money))return True

调用

card1 = BankCard("0001",1000,10)
card1_json = card1.toString()
print(card1_json)card1.setLineOfCredit(500)
card1_json = card1.toString()
print(card1_json)card1.changeMoney(15)
card1.changeMoney(5)

输出

{"userCode": "0001", "lineOfCredit": 1000, "money": 1000, "timesMaxMoney": 10}
{"userCode": "0001", "lineOfCredit": 1000, "money": 500, "timesMaxMoney": 10}
大于单日刷卡上限金额[10]
用户剩余金额:495

构造天地银行信用卡类,继承银行信用卡类

增加属性

  1. 天地银行信用卡积分
  2. 优惠商品列表

重写方法

  1. 传入商品id,若商品id在优惠商品列表中,则商品打九五折
  2. 每消费10元,积分增加1。不足10元积分为0。

增加方法

  1. 获取用户积分
  2. 设置优惠商品

class TDBankCard(BankCard):def __init__(self,userCode,lineOfCredit,timesMaxMoney):super().__init__(userCode,lineOfCredit,timesMaxMoney)self.integral=0self.goods={}def changeMoney(self,money,goodid):# 刷卡if money>self.timesMaxMoney:print("大于单日刷卡上限金额[{0}]".format(self.timesMaxMoney))return Falseif money>self.money:print("大于用户剩余金额[{0}]".format(self.money))return Falseif self.goods.get(goodid):price = self.goods.get(goodid)if money<price:print("小于商品金额[{0}]".format(price))return Falsemoney = round(price*0.95,2)self.money -= moneyprint("用户消费金额:{0}".format(money))print("用户剩余金额:{0}".format(self.money))self.integral += money//10return Truedef getIntegral(self):return self.integraldef setgoods(self,goodid,price):if not self.goods.get(goodid):self.goods[goodid] = priceprint(self.goods)

调用

tdcard = TDBankCard("0002",10000,100)
tdcard.setgoods("00001",50.3)
tdcard.setgoods("00002",10.5)
tdcard.setgoods("00003",90)
tdcard.changeMoney(10,"00003")
print(tdcard.getIntegral())
tdcard.changeMoney(20,"00002")
print(tdcard.getIntegral())
tdcard.changeMoney(100,"00003")
print(tdcard.getIntegral())

输出

{'00001': 50.3}
{'00001': 50.3, '00002': 10.5}
{'00001': 50.3, '00002': 10.5, '00003': 90}
小于商品金额[90]
0
用户消费金额:9.97
用户剩余金额:9990.03
0.0
用户消费金额:85.5
用户剩余金额:9904.53
8.0

http://www.xdnf.cn/news/1798.html

相关文章:

  • Spring 过滤器详解:从基础到实战应用
  • 算法题(133):二维差分
  • 2025年数字化转型前沿趋势:从数字孪生到认知智能
  • 电力作业安全工器具全解析:分类、配置与检查要点
  • 如何模拟黑客攻击(Red Teaming)以测试服务器安全性
  • istio使用ingress gateway通过header实现对不同服务的路由
  • 软件测试报告核心内容详解(附真实案例模板)
  • SQLPandas刷题(LeetCode3451.查找无效的IP地址)
  • 硬件设计器件选型之②瞬态电压抑制二极管(TVS)
  • Unicode编码
  • 输入捕获模式测频率
  • C++多态(实现部分)(一)
  • 【缓存与数据库结合最终方案】伪从技术
  • ATV Launcher pro下载-ATV Launcher pro全网通用版
  • 4月22日复盘-开始卷积神经网络
  • 第十七届山东省职业院校技能大赛 中职组网络建设与运维赛项
  • 监督微调记忆,强化学习泛化:基础模型后训练的比较研究
  • 4月24号
  • NHANES指标推荐:TyG-WHtR
  • ROS-真机向虚拟机器人映射
  • Unity 资源合理性检测
  • 器件选型之二极管
  • 在C语言中获取1字节的每一位bit信息
  • NLP高频面试题(五十二)——深度学习优化器详解
  • ssrf与xxe
  • uniapp 仿小红书轮播图效果
  • Spring Boot 配置处理器深度解析:元数据驱动的工程实践
  • 从零开始:CTF中的XSS漏洞入门指南
  • 【OSG学习笔记】Day 7: 材质与光照——让模型“活”起来
  • 09前端项目----分页功能