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新手编程过程中如何规避一些常见问题的建议
Apr 01 Python
简介Python的collections模块中defaultdict类型的用法
Jul 07 Python
Python中用字符串调用函数或方法示例代码
Aug 04 Python
Python 元类实例解析
Apr 04 Python
python基础学习之如何对元组各个元素进行命名详解
Jul 12 Python
python中正则表达式 re.findall 用法
Oct 23 Python
详解numpy的argmax的具体使用
May 27 Python
Python 线程池用法简单示例
Oct 02 Python
wxPython绘图模块wxPyPlot实现数据可视化
Nov 19 Python
Python3操作MongoDB增册改查等方法详解
Feb 10 Python
OpenCV中VideoCapture类的使用详解
Feb 14 Python
python爬虫容易学吗
Jun 02 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
Windows中安装Apache2和PHP4权威指南
2006/11/18 PHP
Mysql和网页显示乱码解决方法集锦
2008/03/27 PHP
php FPDF类库应用实现代码
2009/03/20 PHP
php+MySQL判断update语句是否执行成功的方法
2014/08/28 PHP
WordPress后台中实现图片上传功能的实例讲解
2016/01/11 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
javascript 跳转代码集合
2009/12/03 Javascript
Javascript 面向对象编程(一) 封装
2011/08/28 Javascript
jquery怎样实现ajax联动框(二)
2013/03/08 Javascript
jQuery实用基础超详细介绍
2013/04/11 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
2014/06/29 Javascript
JS实现按比例缩放图片的方法(附C#版代码)
2015/12/08 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
JS小数转换为整数的方法分析
2017/01/07 Javascript
bootstrap table单元格新增行并编辑
2017/05/19 Javascript
给Easyui-Datebox设置隐藏或者不可用的解决方法
2017/05/26 Javascript
微信小程序实现下拉刷新动画
2019/06/21 Javascript
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
Python正则表达式教程之一:基础篇
2017/03/02 Python
Python使用win32 COM实现Excel的写入与保存功能示例
2018/05/03 Python
浅谈python之新式类
2018/08/12 Python
python print出共轭复数的方法详解
2019/06/25 Python
Python面向对象之多态原理与用法案例分析
2019/12/30 Python
python数据类型可变不可变知识点总结
2020/03/06 Python
python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)
2020/03/09 Python
基于Python脚本实现邮件报警功能
2020/05/20 Python
Python爬虫与反爬虫大战
2020/07/30 Python
管理学专业个人求职信范文
2013/09/21 职场文书
甲方资料员岗位职责
2013/12/13 职场文书
市场营销调查计划书
2014/05/02 职场文书
国际贸易本科毕业生求职信
2014/09/26 职场文书
商务宴请邀请函范文
2015/02/02 职场文书
2015年医院工作总结范文
2015/04/09 职场文书
青春雷锋观后感
2015/06/10 职场文书
2016应届毕业生实习评语
2015/12/01 职场文书
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android