正在回答 回答被采纳积分+1
1回答
好帮手慕念
2021-08-21 10:13:54
同学,你好!可以参考以下的代码和注释理解此练习
# coding:utf-8
class BankAccount(object):
# 根据题目要求币种都是人民币
money_type = '人民币'
# 用字典存储交易详情信息
account_data = {}
# 定义字典的键
count = 1
# 构造初始化函数balance代表自己手动输入的账户余额
def __init__(self, balance):
self.balance = float(balance)
# 定义一个存款方法
def money_in(self, time, money):
self.balance += float(money)
self.time = time
print('此次存入%.2f元,余额为%.2f' % (float(money), self.balance))
self.account_data[self.count] = '交易时间:%s 摘要:转入 金额:+%.2f 币种:%s 余额:%.2f' % \
(self.time, float(money), self.money_type, self.balance)
self.count += 1
# 定义一个取款方法
def money_out(self, out_type, time, money):
self.out_type = out_type
self.time = time
if float(money) > self.balance:
print('交易数量大于余额,请重新选择')
return self.money_out(self.out_type, self.time, input('请输入您需要取出的金额:'))
else:
self.balance -= float(money)
self.time = time
self.out_type = out_type
print('此次取出%.2f元,余额为%.2f' % (float(money), self.balance))
self.account_data[self.count] = '交易时间:%s 摘要:%s 金额:-%.2f 币种:%s 余额:%.2f' % \
(self.time, self.out_type, float(money), self.money_type, self.balance)
self.count += 1
# 打印交易详情
def print_details(self):
# 用字典的items()方法打印出值即交易详情即可
for k, v in self.account_data.items():
print(v)
# 创建实例
my_account = BankAccount(balance=input('请输入您的账户余额:'))
# 使用while True一直循环,结合break可结束循环
while True:
print('感谢选择我行')
print('1.存款\n2.取款\n3.打印交易详情\n4.结束服务')
num = input('请问您想使用什么业务:')
print('=' * 30)
if num == '1':
print('您选择了存款业务')
my_account.money_in(input('请输入交易时间:'), input('请输入您需要存的金额:'))
print('='*30)
elif num == '2':
print('您选择了取款业务')
my_account.money_out(input('交易方式有网转和消费两种,您选择:'), input('请输入交易时间:'), input('请输入您需要取出的金额:'))
print('=' * 30)
elif num == '3':
print('您选择了打印交易详情')
my_account.print_details()
print('=' * 30)
elif num == '4':
print('感谢您的使用,期待下次见面!')
break
else:
print('输入有误,请重新输入')
print('=' * 30)
若还有问题,欢迎继续提问,祝学习愉快!
Python全能工程师
- 参与学习 人
- 提交作业 16247 份
- 解答问题 4470 个
全新版本覆盖5大热门就业方向:Web全栈、爬虫、数据分析、软件测试、人工智能,零基础进击Python全能型工程师,从大厂挑人到我挑大厂,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星