Python实现银行账户资金交易管理系统


Posted in Python onJanuary 03, 2020

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

Python实现银行账户资金交易管理系统

下面按照要求定义一个账户 Account 类。账户 Account 类的属性:

1. 当前账户金额                               money
2. 当前账户交易日志                        account_logs 

账户 Account 类的方法:

1. 存钱                                             deposit()无返回值
2. 取钱                                             withdrawl()无返回值
3. 打印交易详情                               transaction_log()无返回值 

案例代码如下:

#coding: utf-8
import time
import prettytable as pt
money = 0
acount_logs = []
class Account:
 def __init__(self):
 global money
 self.money = money
 self.acount_logs = acount_logs
 def deposit(self):
 amount = float(input('存入金额:'))
 self.money += amount
 self.write_log(amount,'转入')
 def withdrawl(self):
 amount = float(input('取出金额:'))
 if amount > self.money:
  print('余额不足')
 else:
  self.money -= amount
  self.write_log(amount,'取出')
 def transaction_log(self):
 tb = pt.PrettyTable()
 tb.field_names = ["交易日期","摘要","金额","币种","余额"]
 for info in self.acount_logs:
  if info[1] =='转入':
  amount = '+{}'.format(info[2])
  else:
  amount = '-{}'.format(info[2])
  tb.add_row([info[0],info[1],amount,'人民币',info[3]])
  print(tb)
 def write_log(self,amout,handle):
 create_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
 data =[create_time,handle,amout,self.money]
 self.acount_logs.append(data)
def show_menu():
 """ 显示菜单栏 """
 menu = """
====================银行账户资金交易管理====================
0: 退出
1:存款
2: 取款
3: 打印交易详情
===========================================================
 """
 print(menu)
if __name__ == '__main__':
 show_menu()
 account = Account()
 while True:
 choice = int(input("请输入您的选择: "))
 if choice == 0:
  exit(0)
  print("退出系统")
 elif choice == 1:
  flag = True
  while flag:
  account.deposit()
  flag = True if input("是否继续存款(Y|N): ").lower()== 'y' else False
 elif choice == 2:
  flag = True
  while flag:
  account.withdrawl()
  flag = True if input("是否继续取款(Y|N): ").lower()== 'y' else False
 elif choice == 3:
  account.transaction_log()
 else:
  print("请选择正确的编号")

测试结果如下:

====================银行账户资金交易管理====================
0: 退出
1:存款
2: 取款
3: 打印交易详情
===========================================================
 
请输入您的选择: 1
存入金额:300
是否继续存款(Y|N): N
请输入您的选择: 2
取出金额:300
是否继续取款(Y|N): Y
取出金额:100
余额不足
是否继续取款(Y|N): N
请输入您的选择: 3
+---------------------+------+--------+--------+-------+
|  交易日期  | 摘要 | 金额 | 币种 | 余额 |
+---------------------+------+--------+--------+-------+
| 2020-01-02 19:53:54 | 转入 | +300.0 | 人民币 | 300.0 |
+---------------------+------+--------+--------+-------+
+---------------------+------+--------+--------+-------+
|  交易日期  | 摘要 | 金额 | 币种 | 余额 |
+---------------------+------+--------+--------+-------+
| 2020-01-02 19:53:54 | 转入 | +300.0 | 人民币 | 300.0 |
| 2020-01-02 19:54:02 | 取出 | -300.0 | 人民币 | 0.0 |
+---------------------+------+--------+--------+-------+

请输入您的选择: 5
请选择正确的编号
请输入您的选择: 0
Process finished with exit code 0

如果可以每次存入和取出钱之后都有余额提示就更友好了!

总结

以上所述是小编给大家介绍的Python实现银行账户资金交易管理系统,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python通过BF算法实现关键词匹配的方法
Mar 13 Python
Python的Tornado框架异步编程入门实例
Apr 24 Python
django通过ajax发起请求返回JSON格式数据的方法
Jun 04 Python
python实现解数独程序代码
Apr 12 Python
基于Python的文件类型和字符串详解
Dec 21 Python
python批量替换多文件字符串问题详解
Apr 22 Python
python 获取utc时间转化为本地时间的方法
Dec 31 Python
使用Python创建简单的HTTP服务器的方法步骤
Apr 26 Python
python 列表转为字典的两个小方法(小结)
Jun 28 Python
pycharm修改文件的默认打开方式的步骤
Jul 29 Python
python如何保证输入键入数字的方法
Aug 23 Python
分析Python list操作为什么会错误
Nov 17 Python
Pytorch提取模型特征向量保存至csv的例子
Jan 03 #Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
Jan 03 #Python
python实现上传文件到linux指定目录的方法
Jan 03 #Python
pytorch::Dataloader中的迭代器和生成器应用详解
Jan 03 #Python
django商品分类及商品数据建模实例详解
Jan 03 #Python
PyTorch和Keras计算模型参数的例子
Jan 02 #Python
Pytorch中实现只导入部分模型参数的方式
Jan 02 #Python
You might like
那些年我们错过的魔术方法(Magic Methods)
2014/01/14 PHP
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
php获取服务器操作系统相关信息的方法
2016/10/08 PHP
PHP实现正则表达式分组捕获操作示例
2018/02/03 PHP
ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
2018/07/30 PHP
Thinkphp5框架异常处理操作实例分析
2020/06/03 PHP
JS 控制非法字符的输入代码
2009/12/04 Javascript
浮动的div自适应居中显示的js代码
2013/12/23 Javascript
删除节点的jquery代码
2014/01/13 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
Angular实现form自动布局
2016/01/28 Javascript
总结几道关于Node.js的面试问题
2017/01/11 Javascript
Node.js 实现简单的接口服务器的实例代码
2017/05/23 Javascript
JavaScript之Date_动力节点Java学院整理
2017/06/28 Javascript
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
[00:18]天涯墨客三技能展示
2018/08/25 DOTA
Python操作SQLite简明教程
2014/07/10 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
2018/12/22 Python
对python For 循环的三种遍历方式解析
2019/02/01 Python
python tools实现视频的每一帧提取并保存
2020/03/20 Python
详细介绍Python进度条tqdm的使用
2019/07/31 Python
python实现简单井字棋游戏
2020/03/04 Python
详解scrapy内置中间件的顺序
2020/09/28 Python
Pycharm常用快捷键总结及配置方法
2020/11/14 Python
python re模块常见用法例举
2021/03/01 Python
美国瑜伽服装和装备购物网站:Mukha Yoga
2019/02/22 全球购物
德国玩具商店:Planet Happy DE
2021/01/16 全球购物
羽毛球比赛策划方案
2014/06/13 职场文书
社会发展项目建议书
2014/08/25 职场文书
先进事迹演讲稿
2014/09/01 职场文书
学校副校长四风对照检查材料整改措施
2014/09/25 职场文书
作风建设整改方案
2014/10/27 职场文书
2015年考研复习计划
2015/01/19 职场文书
介绍信范文大全
2015/05/07 职场文书
奥巴马开学演讲观后感
2015/06/12 职场文书
Java 超详细讲解ThreadLocal类的使用
2022/04/07 Java/Android