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 集合(set)类型的操作——并交差
Jun 30 Python
详解使用python的logging模块在stdout输出的两种方法
May 17 Python
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
Jan 23 Python
python批量设置多个Excel文件页眉页脚的脚本
Mar 14 Python
python实现彩票系统
Jun 28 Python
用python写一个定时提醒程序的实现代码
Jul 22 Python
分享8点超级有用的Python编程建议(推荐)
Oct 13 Python
Python使用贪婪算法解决问题
Oct 22 Python
python3中关于excel追加写入格式被覆盖问题(实例代码)
Jan 10 Python
如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)
Apr 22 Python
Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
Jun 14 Python
python数据抓取3种方法总结
Feb 07 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
1.PHP简介
2006/10/09 PHP
php 连接mssql数据库 初学php笔记
2010/03/01 PHP
php自定义函数之递归删除文件及目录
2010/08/08 PHP
yii框架中的Url生产问题小结
2012/01/16 PHP
PHP实现C#山寨ArrayList的方法
2015/07/16 PHP
php中define用法实例
2015/07/30 PHP
PHP Oauth授权和本地加密实现方法
2016/08/12 PHP
PHP的Json中文处理解决方案
2016/09/29 PHP
js实现点击注册按钮开始读秒倒计时的小例子
2013/05/11 Javascript
javascript:window.open弹出窗口的位置问题
2014/03/18 Javascript
JS中判断null、undefined与NaN的方法
2014/03/26 Javascript
js/jquery判断浏览器类型的方法小结
2015/05/12 Javascript
jQuery移动web开发中的页面初始化与加载事件
2015/12/03 Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
2016/05/28 Javascript
JS简单实现无缝滚动效果实例
2016/08/24 Javascript
javascript 判断页面访问方式电脑或者移动端
2016/09/19 Javascript
js前端导出Excel的方法
2017/11/01 Javascript
vue 系列——vue2-webpack2框架搭建踩坑之路
2017/12/22 Javascript
Vue组件实现触底判断
2019/06/26 Javascript
layui 数据表格复选框实现单选功能的例子
2019/09/19 Javascript
Python 迭代器工具包【推荐】
2016/05/06 Python
python3+PyQt5实现自定义窗口部件Counters
2018/04/20 Python
Python中栈、队列与优先级队列的实现方法
2019/06/30 Python
在Python 的线程中运行协程的方法
2020/02/24 Python
python 利用百度API识别图片文字(多线程版)
2020/12/14 Python
HTML5 绘制图像(上)之:关于canvas元素引领下一代web页面的问题
2013/04/24 HTML / CSS
美国机场停车位预订:About Airport Parking
2018/03/26 全球购物
Kivari官网:在线购买波西米亚服装
2018/10/29 全球购物
艺校音乐专业自我鉴定范文
2014/03/01 职场文书
升学宴主持词
2014/04/02 职场文书
三分钟演讲稿范文
2014/04/24 职场文书
2014年公司工作总结
2014/11/22 职场文书
2015年汽车销售工作总结
2015/04/07 职场文书
师德师风培训感言
2015/08/03 职场文书
浅谈Java实现分布式事务的三种方案
2021/06/11 Java/Android
ECharts transform数据转换和dataZoom在项目中使用
2022/12/24 Javascript