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基础教程之自定义函数介绍
Aug 29 Python
Python中max函数用法实例分析
Jul 17 Python
使用Python读写文本文件及编写简单的文本编辑器
Mar 11 Python
python使用turtle库绘制树
Jun 25 Python
Centos下实现安装Python3.6和Python2共存
Aug 15 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
Apr 14 Python
Django静态资源部署404问题解决方案
May 11 Python
python openCV实现摄像头获取人脸图片
Aug 20 Python
用python写一个带有gui界面的密码生成器
Nov 06 Python
Python获取指定日期是"星期几"的6种方法
Mar 13 Python
python的html标准库
Apr 29 Python
Python TypeError: ‘float‘ object is not subscriptable错误解决
Dec 24 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
php计算数组不为空元素个数的方法
2014/01/27 PHP
PHP并发多进程处理利器Gearman使用介绍
2016/05/16 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
2019/10/09 PHP
使用jQuery模板来展现json数据的代码
2010/10/22 Javascript
js Form.elements[i]的使用实例
2011/11/13 Javascript
jQuery UI Autocomplete 1.8.16 中文输入修正代码
2012/04/16 Javascript
使用CDN和AJAX加速WordPress中jQuery的加载
2015/12/05 Javascript
JavaScript数组实现数据结构中的队列与堆栈
2016/05/26 Javascript
AngularJs 指令详解及示例代码
2016/09/01 Javascript
详解如何在angular2中获取节点
2017/11/23 Javascript
详解Vue 中 extend 、component 、mixins 、extends 的区别
2017/12/20 Javascript
JS实现验证码倒计时的注册页面
2018/01/02 Javascript
JavaScript实现小球沿正弦曲线运动
2020/09/07 Javascript
[01:02:18]VGJ.S vs infamous Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
Python 类与元类的深度挖掘 II【经验】
2016/05/06 Python
flask中使用蓝图将路由分开写在不同文件实例解析
2018/01/19 Python
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
在Mac下使用python实现简单的目录树展示方法
2018/11/01 Python
基于Python在MacOS上安装robotframework-ride
2018/12/28 Python
这可能是最好玩的python GUI入门实例(推荐)
2019/07/19 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
2019/08/20 Python
Pytorch GPU显存充足却显示out of memory的解决方式
2020/01/13 Python
Python创建空列表的字典2种方法详解
2020/02/13 Python
Python安装whl文件过程图解
2020/02/18 Python
Python类中的装饰器在当前类中的声明与调用详解
2020/04/15 Python
python 利用jieba.analyse进行 关键词提取
2020/12/17 Python
html5标记文字_动力节点Java学院整理
2017/07/11 HTML / CSS
Nike德国官网:Nike.com (DE)
2018/11/13 全球购物
公司贷款承诺书
2014/05/30 职场文书
三八妇女节超市活动方案
2014/08/18 职场文书
教师年度个人总结
2015/02/11 职场文书
工商局个人工作总结
2015/03/03 职场文书
小学毕业感言200字
2015/07/30 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书
python自动化测试之Selenium详解
2022/03/13 Python
MySQL transaction事务安全示例讲解
2022/06/21 MySQL