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中元类用法实例
Oct 10 Python
python获取当前计算机cpu数量的方法
Apr 18 Python
python实现bucket排序算法实例分析
May 04 Python
举例讲解Python面向对象编程中类的继承
Jun 17 Python
Python socket实现简单聊天室
Apr 01 Python
python实现维吉尼亚算法
Mar 20 Python
django的model操作汇整详解
Jul 26 Python
Python 实现遥感影像波段组合的示例代码
Aug 04 Python
Python龙贝格法求积分实例
Feb 29 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
Mar 13 Python
django-xadmin根据当前登录用户动态设置表单字段默认值方式
Mar 13 Python
Python Dataframe常见索引方式详解
May 27 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动态创建Web站点的方法
2011/08/14 PHP
PHP中iconv函数转码时截断字符问题的解决方法
2015/01/21 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
2016/01/08 PHP
PHP利用Socket获取网站的SSL证书与公钥
2017/06/18 PHP
thinkPHP5使用Rabc实现权限管理
2019/08/28 PHP
HTML中事件触发列表与解说
2007/07/09 Javascript
Jquery插件写法笔记整理
2012/09/06 Javascript
页面使用密码保护代码
2013/04/10 Javascript
获取数组中最大最小值方法js代码(自写)
2013/08/12 Javascript
js事件监听机制(事件捕获)总结
2014/08/08 Javascript
js正则表达式匹配数字字母下划线等
2015/04/14 Javascript
JS实现文字掉落效果的方法
2015/05/06 Javascript
js实现固定显示区域内自动缩放图片的方法
2015/07/18 Javascript
JS限制条件补全问题实例分析
2016/12/16 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
2017/02/10 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
2017/05/11 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
2017/08/03 Javascript
jquery+css3实现熊猫tv导航代码分享
2018/02/12 jQuery
微信小程序配置服务器提示验证token失败的解决方法
2019/04/03 Javascript
JavaScript动态检测密码强度原理及实现方法详解
2019/06/11 Javascript
Ant Design Pro 下实现文件下载的实现代码
2019/12/03 Javascript
Vue 解决父组件跳转子路由后当前导航active样式消失问题
2020/07/21 Javascript
Ant Design moment对象和字符串之间的相互转化教程
2020/10/27 Javascript
JS中多层次排序算法的实现代码
2021/01/06 Javascript
[01:33:07]VGJ.T vs Newbee Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Python使用PyGreSQL操作PostgreSQL数据库教程
2014/07/30 Python
python使用json序列化datetime类型实例解析
2018/02/11 Python
在Pycharm中修改文件默认打开方式的方法
2019/01/17 Python
Python实现多进程的四种方式
2019/02/22 Python
python儿童学游戏编程知识点总结
2019/06/03 Python
PyTorch中clone()、detach()及相关扩展详解
2020/12/09 Python
医学毕业生自我鉴定
2013/10/30 职场文书
安全资金保障制度
2014/01/23 职场文书
学校安全检查制度
2014/01/27 职场文书
2015年读书月活动总结
2015/03/26 职场文书
学校2015年纠风工作总结
2015/05/15 职场文书