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将mdb数据库文件导入postgresql数据库示例
Feb 17 Python
python使用PIL缩放网络图片并保存的方法
Apr 24 Python
Python中的localtime()方法使用详解
May 22 Python
python中字符串前面加r的作用
Jun 04 Python
JSON文件及Python对JSON文件的读写操作
Oct 07 Python
python pcm音频添加头转成Wav格式文件的方法
Jan 09 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
Feb 18 Python
python+mysql实现学生信息查询系统
Feb 21 Python
Python获取一个用户名的组ID过程解析
Sep 03 Python
在Python中使用MongoEngine操作数据库教程实例
Dec 03 Python
在Matplotlib图中插入LaTex公式实例
Apr 17 Python
Python读写锁实现实现代码解析
Nov 28 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
DedeCMS 核心类TypeLink.class.php摘要笔记
2010/04/07 PHP
php中{}大括号是什么意思
2013/12/01 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
2014/08/20 PHP
php中数字、字符与对象判断函数用法实例
2014/11/26 PHP
PHP读取大文件的多种方法介绍
2016/04/04 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
2016/10/18 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
ExtJs 3.1 XmlTreeLoader Example Error
2010/02/09 Javascript
jQuery对象和DOM对象的相互转化实现代码
2010/03/02 Javascript
JS 文件大小判断的实现代码
2010/04/07 Javascript
Extjs Label的 fieldLabel和html属性值对齐的方法
2014/06/15 Javascript
再探JavaScript作用域
2014/09/24 Javascript
JS实现跟随鼠标闪烁转动色块的方法
2015/02/26 Javascript
详解Document.Cookie
2015/12/25 Javascript
纯JS实现轮播图
2017/02/22 Javascript
js+canvas实现刮刮奖功能
2020/09/13 Javascript
[59:00]OG vs TNC 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python数据结构之哈夫曼树定义与使用方法示例
2018/04/22 Python
浅析python继承与多重继承
2018/09/13 Python
Python SMTP发送邮件遇到的一些问题及解决办法
2018/10/24 Python
Python基于codecs模块实现文件读写案例解析
2020/05/11 Python
python程序需要编译吗
2020/06/19 Python
中专生自荐信
2013/10/12 职场文书
银行门卫岗位职责
2013/12/29 职场文书
在校硕士自我鉴定
2014/01/23 职场文书
食堂厨师岗位职责
2014/08/25 职场文书
开展党的群众路线教育实践活动个人对照检查材料
2014/11/05 职场文书
个人求职自荐信范文
2015/03/06 职场文书
资料员岗位职责范本
2015/04/13 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书
2016年劳模先进事迹材料
2016/02/25 职场文书
公司员工违法违章行为检讨书
2019/06/24 职场文书
基于Redis过期事件实现订单超时取消
2021/05/08 Redis
MongoDB安装使用并实现Python操作数据库
2021/06/28 MongoDB
CentOS MySql8 远程连接实战
2022/04/19 MySQL