Python基础项目实践之:面向对象方法实现模拟银行管理系统

Python课堂基础实践系列:

Python基础项目实践之:学生信息管理系统

python基础项目实践之: 学生通讯录管理系统

Python基础项目实践之:面向对象方法模拟简单计算器

Python基础项目实践之:面向对象方法实现模拟银行管理系统

面向对象方法实现模拟银行管理系统
代码如下:

import prettytable as pt   # 表格形式显示
import timebank_log = []    # 初始化银行交易日志class Bank:'''银行类'''def __init__(self):"""初始化"""self.money = 0    # 封装和初始化金额self.bank_log = bank_logdef deposit(self):"""存款"""amount = float(input("请输入存款金额: "))self.money += amountself.write_log(amount, '转入')def withdrawl(self):"""取款"""amount = float(input("请输入取款金额: "))if amount > self.money:print("余额不足")else:self.money -= amountself.write_log(amount, "消费")def transaction_log(self):"""打印交易日志"""tb = pt.PrettyTable()tb.field_names = ['交易日期', '摘要', '金额', '币种', '余额']  # 设置表头for info in self.bank_log:# 判断转入还是消费,为金额前添加“+” 或“-”if info[1] == '转入':amout = "+{}".format(info[2])else:amout = "-{}".format(info[2])tb.add_row([info[0], info[1], amout, '人民币', info[3]])print(tb)def write_log(self, amount, handle):"""写入日志"""# 按照指定形式获取时间creat_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))data = [creat_time, handle, amount, self.money]  # 组装列表self.bank_log.append(data)  # 写入日志信息def display():"""显示菜单栏"""menu = """====================银行账户资金交易管理====================0:退出1:存款2:取款3:打印交易详情=========================================================="""print(menu)if __name__ == '__main__':display()  # 显示菜单account = Bank()  # 创建对象while True:choice = int(input("请输入您的选择: "))if choice == 0:exit(0)print("退出系统")elif choice == 1:flag = Truewhile flag:# deposit_money = float(input('存款金额: '))account.deposit()flag = True if input("是否继续存款(yes/no): ").lower() == "yes" else Falseelif choice == 2:flag = Truewhile flag:# wd_money = float(input("取款金额: "))account.withdrawl()flag = True if input("是否继续取款(yes/no):").lower() == 'yes' else Falseelif choice == 3:account.transaction_log()else:print("请重新选择正确的序号")
import prettytable as pt   # 表格形式显示
import timebank_log = []    # 初始化银行交易日志class Bank:'''银行类'''def __init__(self):"""初始化"""self.money = 0    # 封装和初始化金额self.bank_log = bank_logdef deposit(self):"""存款"""amount = float(input("请输入存款金额: "))self.money += amountself.write_log(amount, '转入')def withdrawl(self):"""取款"""amount = float(input("请输入取款金额: "))if amount > self.money:print("余额不足")else:self.money -= amountself.write_log(amount, "消费")def transaction_log(self):"""打印交易日志"""tb = pt.PrettyTable()tb.field_names = ['交易日期', '摘要', '金额', '币种', '余额']  # 设置表头for info in self.bank_log:# 判断转入还是消费,为金额前添加“+” 或“-”if info[1] == '转入':amout = "+{}".format(info[2])else:amout = "-{}".format(info[2])tb.add_row([info[0], info[1], amout, '人民币', info[3]])print(tb)def write_log(self, amount, handle):"""写入日志"""# 按照指定形式获取时间creat_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))data = [creat_time, handle, amount, self.money]  # 组装列表self.bank_log.append(data)  # 写入日志信息def display():"""显示菜单栏"""menu = """====================银行账户资金交易管理====================0:退出1:存款2:取款3:打印交易详情=========================================================="""print(menu)if __name__ == '__main__':display()  # 显示菜单account = Bank()  # 创建对象while True:choice = int(input("请输入您的选择: "))if choice == 0:exit(0)print("退出系统")elif choice == 1:flag = Truewhile flag:# deposit_money = float(input('存款金额: '))account.deposit()flag = True if input("是否继续存款(yes/no): ").lower() == "yes" else Falseelif choice == 2:flag = Truewhile flag:# wd_money = float(input("取款金额: "))account.withdrawl()flag = True if input("是否继续取款(yes/no):").lower() == 'yes' else Falseelif choice == 3:account.transaction_log()else:print("请重新选择正确的序号")
import prettytable as pt   # 表格形式显示
import timebank_log = []    # 初始化银行交易日志class Bank:'''银行类'''def __init__(self):"""初始化"""self.money = 0    # 封装和初始化金额self.bank_log = bank_logdef deposit(self):"""存款"""amount = float(input("请输入存款金额: "))self.money += amountself.write_log(amount, '转入')def withdrawl(self):"""取款"""amount = float(input("请输入取款金额: "))if amount > self.money:print("余额不足")else:self.money -= amountself.write_log(amount, "消费")def transaction_log(self):"""打印交易日志"""tb = pt.PrettyTable()tb.field_names = ['交易日期', '摘要', '金额', '币种', '余额']  # 设置表头for info in self.bank_log:# 判断转入还是消费,为金额前添加“+” 或“-”if info[1] == '转入':amout = "+{}".format(info[2])else:amout = "-{}".format(info[2])tb.add_row([info[0], info[1], amout, '人民币', info[3]])print(tb)def write_log(self, amount, handle):"""写入日志"""# 按照指定形式获取时间creat_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))data = [creat_time, handle, amount, self.money]  # 组装列表self.bank_log.append(data)  # 写入日志信息def display():"""显示菜单栏"""menu = """====================银行账户资金交易管理====================0:退出1:存款2:取款3:打印交易详情=========================================================="""print(menu)if __name__ == '__main__':display()  # 显示菜单account = Bank()  # 创建对象while True:choice = int(input("请输入您的选择: "))if choice == 0:exit(0)print("退出系统")elif choice == 1:flag = Truewhile flag:# deposit_money = float(input('存款金额: '))account.deposit()flag = True if input("是否继续存款(yes/no): ").lower() == "yes" else Falseelif choice == 2:flag = Truewhile flag:# wd_money = float(input("取款金额: "))account.withdrawl()flag = True if input("是否继续取款(yes/no):").lower() == 'yes' else Falseelif choice == 3:account.transaction_log()else:print("请重新选择正确的序号")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565813.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【OpenCV 例程200篇】85. 频率域高通滤波器的应用

【OpenCV 例程200篇】85. 频率域高通滤波器的应用 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 4. 频率域高通滤波器 图像边缘化其它灰度的急剧变化与高频分量有关,因此可以在频…

【OpenCV 例程200篇】86. 频率域滤波应用:指纹图像处理

【OpenCV 例程200篇】86. 频率域滤波应用:指纹图像处理 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 4. 频率域高通滤波器 图像边缘化其它灰度的急剧变化与高频分量有关&#xf…

商品销售管理系统

用JSP servlet和jquery以及SQLServer数据库实现商品销售管理系统。 功能详解: 1.查询商品 2.添加商品 3.删除商品 4.添加销售记录 5.查看销售记录 效果演示: 进入界面 商品显示页面 删除提示 销售记录查询 商品销售系统需要SQLServer数据库和程序…

Python基础项目实践之:面向对象方法模拟简单计算器

Python课堂基础实践系列: Python基础项目实践之:学生信息管理系统 python基础项目实践之: 学生通讯录管理系统 Python基础项目实践之:面向对象方法模拟简单计算器 Python基础项目实践之:面向对象方法实现模拟银行管理系统 学…

【OpenCV 例程200篇】87. 频率域钝化掩蔽

【OpenCV 例程200篇】87. 频率域钝化掩蔽 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 4.2 频率域钝化掩蔽 简单地,从原始图像中减去一幅平滑处理的钝化图像,也可以实…

拼图验证码

H5的Canvas实现一个拼图验证码。 功能分析: 1.验证码图片的生成 2.滑块图片的显示 3.底部滑块的横向移动 4.滑块上的文字显示 效果演示: 初始状态 滑动成功之后 有没有一种心动的感觉呢??? 代码演示 注意&#x…

python基础项目实践之: 学生通讯录管理系统

Python课堂基础实践系列: Python基础项目实践之:学生信息管理系统 python基础项目实践之: 学生通讯录管理系统 Python基础项目实践之:面向对象方法模拟简单计算器 Python基础项目实践之:面向对象方法实现模拟银行管理系统 功…

【OpenCV 例程200篇】88. 频率域拉普拉斯高通滤波

【OpenCV 例程200篇】88. 频率域拉普拉斯高通滤波 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 4.3 频率域拉普拉斯高通滤波 拉普拉斯算子(Laplace)是导数算子&#…

顶部导航栏

HTML和CSS实现顶部导航栏&#xff0c;二级菜单的实现。 原理分析&#xff1a; 1.使用ul(无需列表)嵌套ul(无序列表) 2.鼠标放上改变背景颜色 3.二级菜单的显示 效果演示&#xff1a; 初始样式 鼠标放上 代码演示 <!DOCTYPE html> <html><head><meta …

VSCode配置Python的教程

本文基于Windows系统 超详细VSCode安装教程&#xff08;Windows&#xff09; 博主的VSCode专栏&#xff1a;分享使用VSCode的基本操作与各种技巧 刚刚开始学习Python时&#xff0c;按照老师提供的傻瓜式操作配好Python后&#xff0c;发现它自带了一个ide&#xff1a;IDLE&…

【OpenCV 例程200篇】89. 带阻滤波器的传递函数

【OpenCV 例程200篇】89. 带阻滤波器的传递函数 欢迎关注 『OpenCV 例程200篇』 系列&#xff0c;持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列&#xff0c;持续更新中 5.1 带阻与带通 空间域和频率域线性滤波器可以分为四类&#xff1a;低通滤波器、高通滤波器、带…

用Python海归作图--turtle,画椭圆

想必大家都想过用Python中的turtle画出椭圆吧&#xff0c;自己思考了许久&#xff0c;终于琢磨着画出了椭圆&#xff0c;但是我不知道这个方法是不是最简单的&#xff0c;是不是正确的&#xff0c;如果有错误请指正&#xff0c;如果觉得好用就尽管拿去用&#xff0c;哈哈哈 代码…

【OpenCV 例程200篇】90. 频率域陷波滤波器

【OpenCV 例程200篇】90. 频率域陷波滤波器 欢迎关注 『OpenCV 例程200篇』 系列&#xff0c;持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列&#xff0c;持续更新中 5.2 陷波滤波器 &#xff08;Notch Filter&#xff09; 陷波滤波器阻止或通过预定的频率矩形邻域中…

简单导航栏

实现一个简单的导航栏。 使用HTML和CSS实现简单的导航栏效果&#xff0c;鼠标放上改变背景杨色。 效果演示 代码演示 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><style>ul{width…

轻松学会python的turtle模块,画一箭穿心、小人儿发射爱心、520表白完整代码,海龟作图小创意

本文导航&#xff1a;若您是直接想要代码&#xff0c;那么请您移步代码区&#xff0c;复制粘贴即可;若您是想了解turtle模块更多知识的话&#xff0c;请您移步turtle模块知识区;若您想看完本文呢&#xff0c;那我定是感激涕零啦(✪ω✪) 您可以选择选择如下区域或不作选择浏览本…

【OpenCV 例程200篇】91. 高斯噪声、瑞利噪声、爱尔兰噪声

【OpenCV 例程200篇】 系列&#xff0c;持续更新中… 【OpenCV 例程200篇 总目录-202205更新】 【OpenCV 例程200篇】91. 高斯噪声、瑞利噪声、爱尔兰噪声 2. 噪声模型 数字图像中的噪声源主要来自图像获取和传输过程。在获取图像时&#xff0c;光照水平和传感器温度影响图像中…

H5 炫酷导航

使用H5和CSS制作非常炫酷的旋转标题栏。 原理分析 1.使用ul(无序列表) 2.圆形边框样式 3.透明度的设置 4.边框阴影的添加 5.li去掉前面的圆点 效果演示 初始样式 旋转动画 旋转完毕 代码演示 1 CSS样式 <style>* {margin: 0;padding: 0;}body {background: url(…

超详细VSCode安装教程(Windows)

博主的VSCode专栏&#xff1a; 分享使用VS Code的基本操作与各种技巧 下载 官网下载页面&#xff1a;https://code.visualstudio.com/Download 请根据电脑的系统与所需版本点击下载链接&#xff08;一般情况下点击Windows按钮即可&#xff09; 安装 本文成于2020年4月21日&…

【OpenCV 例程200篇】92. 指数噪声、均匀噪声、椒盐噪声

【OpenCV 例程200篇】92. 指数噪声、均匀噪声、椒盐噪声 欢迎关注 『OpenCV 例程200篇』 系列&#xff0c;持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列&#xff0c;持续更新中 2. 噪声模型 数字图像中的噪声源主要来自图像获取和传输过程。在获取图像时&#xff0…

去掉li前面的圆点

在HTML中使用无序列表ul li的时候通常前面会出现一个圆点&#xff0c;那么如何把这个圆点去掉呢&#xff1f;&#xff1f;&#xff1f; 在 li 里使用&#xff1a; list-style: none; 案列演示 没有使用list-style: none; 使用list-style: none; 示例代码 <!DOCTYPE h…