鱼C论坛

 找回密码
 立即注册
查看: 1416|回复: 6

[已解决]面向对象实现银行账户的资金交易管理

[复制链接]
发表于 2021-6-21 22:43:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 easyboy 于 2021-6-21 23:02 编辑


用类和对象实现自己银行账户的资金交易管理吧,包括存款、取款和打印交易详情,交易详情中包含每次交易的时间、存款或者取款的金额、每次交易后的余额。

如图
601bd6cf090d3c5f05500174.png
存入打印+
取出打印-

如何实现如图 这种存入打印+\取出打印-  这种格式  
最佳答案
2021-6-22 00:00:53
本帖最后由 suchocolate 于 2021-6-22 10:57 编辑

供参考。
  1. import time


  2. class Account:
  3.     def __init__(self, name):
  4.         self.name = name
  5.         self.account = 0
  6.         self.record = dict()
  7.         # key = time.strftime("%H-%M-%S", time.localtime())
  8.         # value = ['save or expense', '+/-money', 'TYPE', account]

  9.     def __genkey(self):
  10.         return time.strftime("%H-%M-%S", time.localtime())   # 测试需要,时间用时分秒代替了

  11.     def save(self, money):
  12.         self.account += money
  13.         self.record[self.__genkey()] = ['转入', f'+{money}', 'RMB', self.account]
  14.         # self.record[self.__genkey()] = ['转入', f'\033[31m+{money}\033[0m', 'RMB', self.account]  # 可选,带颜色

  15.     def expense(self, money):
  16.         self.account -= money
  17.         self.record[self.__genkey()] = ['消费', f'-{money}', 'RMB', self.account]
  18.         # self.record[self.__genkey()] = ['消费', f'\033[32m-{money}\033[0m', 'RMB', self.account]  # 可选,带颜色

  19.     def show(self):
  20.         print('交易日期 摘要 金额 币种 余额')
  21.         for k, v in self.record.items():
  22.             print(k, *v)


  23. if __name__ == '__main__':
  24.     test = Account('test')
  25.     test.save(100)
  26.     test.show()
  27.     time.sleep(2)
  28.     test.expense(20)
  29.     test.show()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-22 00:00:53 | 显示全部楼层    本楼为最佳答案   
本帖最后由 suchocolate 于 2021-6-22 10:57 编辑

供参考。
  1. import time


  2. class Account:
  3.     def __init__(self, name):
  4.         self.name = name
  5.         self.account = 0
  6.         self.record = dict()
  7.         # key = time.strftime("%H-%M-%S", time.localtime())
  8.         # value = ['save or expense', '+/-money', 'TYPE', account]

  9.     def __genkey(self):
  10.         return time.strftime("%H-%M-%S", time.localtime())   # 测试需要,时间用时分秒代替了

  11.     def save(self, money):
  12.         self.account += money
  13.         self.record[self.__genkey()] = ['转入', f'+{money}', 'RMB', self.account]
  14.         # self.record[self.__genkey()] = ['转入', f'\033[31m+{money}\033[0m', 'RMB', self.account]  # 可选,带颜色

  15.     def expense(self, money):
  16.         self.account -= money
  17.         self.record[self.__genkey()] = ['消费', f'-{money}', 'RMB', self.account]
  18.         # self.record[self.__genkey()] = ['消费', f'\033[32m-{money}\033[0m', 'RMB', self.account]  # 可选,带颜色

  19.     def show(self):
  20.         print('交易日期 摘要 金额 币种 余额')
  21.         for k, v in self.record.items():
  22.             print(k, *v)


  23. if __name__ == '__main__':
  24.     test = Account('test')
  25.     test.save(100)
  26.     test.show()
  27.     time.sleep(2)
  28.     test.expense(20)
  29.     test.show()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-6-22 09:15:50 | 显示全部楼层

不一定要这么骚的操作把,反正负数能被显示出来,  输出的时候,为正就打印一个加号。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-22 17:52:29 | 显示全部楼层

f'+{money}'   格式化不错  差点忘了还有这个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-22 17:56:59 | 显示全部楼层
z5560636 发表于 2021-6-22 09:15
不一定要这么骚的操作把,反正负数能被显示出来,  输出的时候,为正就打印一个加号。

格式化一下就行了,被2L启发了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-22 22:35:38 | 显示全部楼层
1楼敲这么多代码不给人家一个最佳?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2021-6-23 12:53:48 | 显示全部楼层
nahongyan1997 发表于 2021-6-22 22:35
1楼敲这么多代码不给人家一个最佳?

对啊哈哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 19:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表