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脚本来删除指定容量以上的文件的教程
May 04 Python
Python 模拟购物车的实例讲解
Sep 11 Python
Python之Scrapy爬虫框架安装及使用详解
Nov 16 Python
Python将多个excel表格合并为一个表格
Feb 22 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
Dec 27 Python
django使用xadmin的全局配置详解
Nov 15 Python
浅谈Tensorflow 动态双向RNN的输出问题
Jan 20 Python
Python装饰器用法与知识点小结
Mar 09 Python
Python参数传递对象的引用原理解析
May 22 Python
Python使用Selenium实现淘宝抢单的流程分析
Jun 23 Python
如何使用scrapy中的ItemLoader提取数据
Sep 30 Python
Python中的变量与常量
Nov 11 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中获得视频时间总长度的另一种方法
2011/09/15 PHP
PHP删除数组中特定元素的两种方法
2013/07/02 PHP
php数组去除空值函数分享
2015/02/02 PHP
PHP SPL标准库之接口(Interface)详解
2015/05/11 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
2016/07/28 PHP
论坛里点击别人帖子下面的回复,回复标题变成“回复 24# 的帖子”
2009/06/14 Javascript
jquery使用淘宝接口跨域查询手机号码归属地实例
2013/11/28 Javascript
Javascript基础教程之数据类型 (字符串 String)
2015/01/18 Javascript
jQuery Mobile框架中的表单组件基础使用教程
2016/05/17 Javascript
js绘制购物车抛物线动画
2020/11/18 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
2016/10/10 Javascript
Bootstrap列表组学习使用
2017/02/09 Javascript
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
2017/05/05 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
vue-cli + sass 的正确打开方式图文详解
2017/10/27 Javascript
Vue.js与 ASP.NET Core 服务端渲染功能整合
2017/11/16 Javascript
react实现菜单权限控制的方法
2017/12/11 Javascript
Vue中div contenteditable 的光标定位方法
2018/08/25 Javascript
移动端滑动切换组件封装 vue-swiper-router实例详解
2018/11/25 Javascript
Python使用CMD模块更优雅的运行脚本
2015/05/11 Python
python中实现数组和列表读取一列的方法
2018/04/03 Python
快速解决安装python没有scripts文件夹的问题
2018/04/03 Python
使用python实现抓取腾讯视频所有电影的爬虫
2019/04/15 Python
python3发送邮件需要经过代理服务器的示例代码
2019/07/25 Python
Python 中使用 PyMySQL模块操作数据库的方法
2019/11/10 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
关于python中的xpath解析定位
2020/03/06 Python
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
Brookstone美国官网:独特新奇产品
2017/03/04 全球购物
泰国健康和美容服务预订网站:GoWabi
2019/06/03 全球购物
购房意向书
2014/04/01 职场文书
《鲁班和橹板》教学反思
2014/04/27 职场文书
小学运动会报道稿
2014/10/04 职场文书
工程部岗位职责范本
2015/04/11 职场文书
干货:如何写好工作总结报告!
2019/05/10 职场文书
Oracle数据库事务的开启与结束详解
2022/06/25 Oracle