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 15 Python
Python类属性与实例属性用法分析
May 09 Python
Python使用email模块对邮件进行编码和解码的实例教程
Jul 01 Python
python使用正则表达式的search()函数实现指定位置搜索功能
Nov 10 Python
python threading和multiprocessing模块基本用法实例分析
Jul 25 Python
Python 类属性与实例属性,类对象与实例对象用法分析
Sep 20 Python
python实现二分类的卡方分箱示例
Nov 22 Python
修改Pandas的行或列的名字(重命名)
Dec 18 Python
解决django的template中如果无法引用MEDIA_URL问题
Apr 07 Python
基于matplotlib xticks用法详解
Apr 16 Python
Python基于yaml文件配置logging日志过程解析
Jun 23 Python
Python如何识别银行卡卡号?
Jun 10 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
关于zend studio 出现乱码问题的总结
2013/06/23 PHP
php统计文章排行示例
2014/03/04 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
2015/12/11 PHP
PHP编写学校网站上新生注册登陆程序的实例分享
2016/03/21 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
PHP实现的折半查找算法示例
2017/12/19 PHP
Laravel 5.1 框架Blade模板引擎用法实例分析
2020/01/04 PHP
基于jquery的图片懒加载js
2010/06/30 Javascript
JS判断字符串包含的方法
2015/05/05 Javascript
jQuery实现仿百度首页滑动伸缩展开的添加服务效果代码
2015/09/09 Javascript
js实现内容显示并使用json传输数据
2016/03/16 Javascript
js学习阶段总结(必看篇)
2016/06/16 Javascript
jQuery插件Validation快速完成表单验证的方式
2016/07/28 Javascript
jQuery实现带延时功能的水平多级菜单效果【附demo源码下载】
2016/09/21 Javascript
微信小程序request请求封装,验签代码实例
2019/12/04 Javascript
vue实现移动端input上传视频、音频
2020/08/18 Javascript
[00:27]DOTA2次级职业联赛 - Lilith战队宣传片
2014/12/01 DOTA
PyQt实现界面翻转切换效果
2018/04/20 Python
一步步教你用python的scrapy编写一个爬虫
2019/04/17 Python
Python 抓取微信公众号账号信息的方法
2019/06/14 Python
django迁移数据库错误问题解决
2019/07/29 Python
python3获取url文件大小示例代码
2019/09/18 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
2020/04/20 Python
Python如何使用队列方式实现多线程爬虫
2020/05/12 Python
HTML5新增的标签和属性归纳总结
2018/05/02 HTML / CSS
canvas实现圆绘制的示例代码
2019/09/11 HTML / CSS
整理HTML5中支持的URL编码与字符编码
2016/02/23 HTML / CSS
e路東瀛(JAPANiCAN)香港:日本旅游、日本酒店和温泉旅馆预订
2018/11/21 全球购物
Nasty Gal英国:美国女性服饰销售网站
2021/03/02 全球购物
电子商务专业实习生自我鉴定
2013/09/24 职场文书
教师学习培训邀请函
2014/02/04 职场文书
班级口号大全
2014/06/09 职场文书
领导班子个人对照检查剖析材料
2014/09/29 职场文书
画展邀请函
2015/01/31 职场文书
OpenCV-Python 实现两张图片自动拼接成全景图
2021/06/11 Python
python3中apply函数和lambda函数的使用详解
2022/02/28 Python