老师能帮忙看看这个代码哪些地方需要优化的

老师能帮忙看看这个代码哪些地方需要优化的

相关代码:

from datetime import datetime

# 定义银行类
class Account(object):
    currency = '人民币'

    def __init__(self, balance):
        self.balance = float(balance)  #  初始化余额
        self.printlist = list()   # 初始化列表

    # 操作时间
    def operation_time(self):
        return datetime.now().strftime('%Y-%m-%d')

    # 存款方法
    def deposit(self, money):
        # 存款
        self.balance += money
        self.printlist.append(
            [self.operation_time(), '转入', f'+{money:.2f}', self.currency, f'{self.balance:.2f}'])
        
    # 取款
    def withdraw_money(self, money, operation):
        self.balance -= money
        self.printlist.append(
                [self.operation_time(), operation, f'-{money:.2f}', self.currency, f'{self.balance:.2f}'])         

    # 打印交易详情
    def transactions(self):
        print(' 交易日期   摘要   金额   币种\t  余额')
        for i in self.printlist:
            for _ in i:
                print(_, end=' ')
            print()
        
    # 交易系统,负责调用其他函数
    def trading_system(self):
        while True:
            choices = {
                1: '存款',
                2: '取款',
                3: '打印交易信息',
                4: '结束服务'
                }
            print('*'* 50)
            print('欢迎使用资金交易管理系统')
            for key, value in choices.items():
                print(f'{key}: {value}')
            print('*'* 50)
            choice = int(input('请输入操作选项(1-4):'))
            if choice == 1:
                nums = input('请输入你需要存入的金额:')
                self.deposit(float(nums))
            elif choice == 2:
                nums = input('请输入你需要取出的金额:')
                choices = input('请输入你的消费类型:')
                self.withdraw_money(float(nums), choices)
            elif choice == 3:
                self.transactions()
            elif choice == 4:
                break
            
# 入口函数
if __name__ == '__main__':
    # 实例化对象
    account = Account(float(input('请输入你的账户余额:')))
    account.trading_system()


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕凡 2021-11-10 11:32:09

同学,你好!

以上代码较乱,同学可以再次提交下代码,提交时选择左上角代码语言,将代码复制进代码框,如下图:

https://img1.sycdn.imooc.com//climg/618b3cf509cd4b2908090460.jpg

祝学习愉快~

  • 提问者 坏狐狸Y #1
    # coding:utf-8
    
    from datetime import datetime
    
    class Account(object):
        currency = '人名币'
    
        def __init__(self, balance):
            # 初始化余额和交易信息
            self.balance = balance
            self.trad_info = list()
        # 获取实时时间方法
        def date_time(self):
            return datetime.now().strftime('%Y-%m-%d')
    
        # 存款方法
        def deposit(self, money):
            # 存款
            self.balance += money
            self.trad_info.append([self.date_time(), '转入', f'+{money:.2f}', self.currency, f'{self.balance:.2f}'])
    
        # 取款方法
        def withdrawal(self, money, operation):
            self.balance -= money
            self.trad_info.append([self.date_time(), operation, f'-{money:.2f}', self.currency, f'{self.balance:.2f}'])
    
        # 打印交易详情方法
        def transaction_info(self):
            print('  交易日期   摘要   金额    币种   余额')
            for i in self.trad_info:
                for _ in i:
                    print(_, end=' ')
                print()
    
        def trading_system(self):
            while True:
                choices = {
                    1: '存款',
                    2: '取款',
                    3: '打印交易信息',
                    4: '结束服务'
                }
                print('*'* 70)
                print('欢迎使用资金交易管理系统')
                for key, value in choices.items():
                    print(f'{key}: {value}')
                choice = int(input('请输入操作选项(1-4):'))
                print('*'* 70)
                if choice == 1:
                    amount = input('请输入需要存入的金额:')
                    self.deposit(float(amount))
                elif choice == 2:
                    amount = input('请输入需要取出的金额:')
                    operation = input('请输入')
                    self.withdrawal(float(amount))
                elif choice == 3:
                    self.transaction_info()
                elif choice == 4:
                    break
    
    if __name__ == '__main__':
        account = Account(float(input('请输入你的账户余额:')))
        account.trading_system()

    好的,老师,这是我的代码,麻烦老师看看了


    2021-11-13 22:58:39
  • 好帮手慕美 回复 提问者 坏狐狸Y #2

    同学,你好!在调用withdrawal()时需要传入operation参数

    https://img1.sycdn.imooc.com//climg/6190663409b458de08880272.jpg

    祝学习愉快!

    下载视频          
    2021-11-14 09:30:09
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师