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在windows命令行下输出彩色文字的方法
Mar 19 Python
python中的闭包用法实例详解
May 05 Python
Python实现的使用telnet登陆聊天室实例
Jun 17 Python
python中copy()与deepcopy()的区别小结
Aug 03 Python
Selenium(Python web测试工具)基本用法详解
Aug 10 Python
Python可迭代对象操作示例
May 07 Python
django+tornado实现实时查看远程日志的方法
Aug 12 Python
Python实现微信机器人的方法
Sep 06 Python
Pyqt5自适应布局实例
Dec 13 Python
python 的topk算法实例
Apr 02 Python
Python 如何批量更新已安装的库
May 26 Python
Python爬虫爬取ts碎片视频+验证码登录功能
Feb 22 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动态图像的创建
2006/10/09 PHP
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
2012/09/23 PHP
浅析php中如何在有限的内存中读取大文件
2013/07/02 PHP
解析在PHP中使用mysqli扩展库对mysql的操作
2013/07/03 PHP
php检测用户是否用手机(Mobile)访问网站的类
2014/01/09 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
用 Javascript 验证表单(form)中多选框(checkbox)值
2009/09/08 Javascript
jquery 多行滚动代码(附详细解释)
2010/06/17 Javascript
jQuery Tips 为AJAX回调函数传递额外参数的方法
2010/12/28 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
提高jQuery性能的十个诀窍
2013/11/14 Javascript
JS获取下拉列表所选中的TEXT和Value的实现代码
2014/01/11 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
基于jQuery实现淡入淡出效果轮播图
2020/07/31 Javascript
微信小程序 使用canvas制作K线实例详解
2017/01/12 Javascript
canvas绘制七巧板
2017/02/03 Javascript
JS设置随机出现2个数字的实例代码
2017/07/19 Javascript
使用jQuery实现购物车结算功能
2017/08/15 jQuery
vue cli 3.x 项目部署到 github pages的方法
2019/04/17 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
2019/05/09 Javascript
解决vue 表格table列求和的问题
2019/11/06 Javascript
Vuex实现数据增加和删除功能
2019/11/11 Javascript
antd form表单数据回显操作
2020/11/02 Javascript
vue element和nuxt的使用技巧分享
2021/01/14 Vue.js
Python程序员鲜为人知但你应该知道的17个问题
2014/06/04 Python
Python算术运算符实例详解
2017/05/31 Python
python 巧用正则寻找字符串中的特定字符的位置方法
2018/05/02 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
2018/07/11 Python
使用python切片实现二维数组复制示例
2019/11/26 Python
Python 将json序列化后的字符串转换成字典(推荐)
2020/01/06 Python
Flask缓存静态文件的具体方法
2020/08/02 Python
CSS3 clip-path 用法介绍详解
2018/03/01 HTML / CSS
企业党员一句话承诺
2014/05/30 职场文书
幼儿园食品安全责任书
2015/05/08 职场文书
无婚姻登记记录证明
2015/06/18 职场文书
vue特效之翻牌动画
2022/04/20 Vue.js