easyboy 发表于 2021-6-21 22:43:26

面向对象实现银行账户的资金交易管理

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


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

如图

存入打印+
取出打印-

如何实现如图 这种存入打印+\取出打印-这种格式

suchocolate 发表于 2021-6-22 00:00:53

本帖最后由 suchocolate 于 2021-6-22 10:57 编辑

供参考。
import time


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

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

    def save(self, money):
      self.account += money
      self.record = ['转入', f'+{money}', 'RMB', self.account]
      # self.record = ['转入', f'\033# 可选,带颜色

    def expense(self, money):
      self.account -= money
      self.record = ['消费', f'-{money}', 'RMB', self.account]
      # self.record = ['消费', f'\033# 可选,带颜色

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


if __name__ == '__main__':
    test = Account('test')
    test.save(100)
    test.show()
    time.sleep(2)
    test.expense(20)
    test.show()

z5560636 发表于 2021-6-22 09:15:50

suchocolate 发表于 2021-6-22 00:00
供参考。

不一定要这么骚的操作把,反正负数能被显示出来,输出的时候,为正就打印一个加号。

easyboy 发表于 2021-6-22 17:52:29

suchocolate 发表于 2021-6-22 00:00
供参考。

f'+{money}'   格式化不错差点忘了还有这个

easyboy 发表于 2021-6-22 17:56:59

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

格式化一下就行了,被2L启发了

nahongyan1997 发表于 2021-6-22 22:35:38

1楼敲这么多代码不给人家一个最佳?

Gacy 发表于 2021-6-23 12:53:48

nahongyan1997 发表于 2021-6-22 22:35
1楼敲这么多代码不给人家一个最佳?

对啊哈哈哈{:10_254:}
页: [1]
查看完整版本: 面向对象实现银行账户的资金交易管理