在python中使用while循环运行命令时,我遇到了数量问题

在python中使用while循环运行命令时,我遇到了数量问题,python,json,inheritance,while-loop,subclass,Python,Json,Inheritance,While Loop,Subclass,我导入了一个json文件,并为超级大米的大米银行帐户创建了一个while循环。我在父代码下创建def,但遇到错误:TypeError:draw_money()缺少1个必需的位置参数:“amount”。我还尝试为每个子类的新周添加新的值,这些子类将为超级大米帐户追加500,为普通大米A追加预付费,为0。我被超级大米帐户卡住了。由于错误,我需要提取钱(金额),我仍然需要为新周计算函数。有人能帮我吗 下面是我的代码 class BaseAccount: def __init__(self,

我导入了一个json文件,并为超级大米的大米银行帐户创建了一个while循环。我在父代码下创建def,但遇到错误:TypeError:draw_money()缺少1个必需的位置参数:“amount”。我还尝试为每个子类的新周添加新的值,这些子类将为超级大米帐户追加500,为普通大米A追加预付费,为0。我被超级大米帐户卡住了。由于错误,我需要提取钱(金额),我仍然需要为新周计算函数。有人能帮我吗

下面是我的代码

class BaseAccount:
      def __init__(self, account_id, account_type, full_name, birthday, balance,amount=500):
        self.account_id = account_id
        self.account_type = account_type
        self.full_name = full_name
        self.birthday = birthday
        self.balance = balance
        self.amount = amount

    def account_info(self):
        for p in data ['accounts']:
            print('You have successfully withdrawn 500 grams from the account.')
            print('Account ID:' + p['account_id'])
            print('Account Type:' + p['account_type'])
            print('Full Name:' + p['full_name'])
            print('Birthday:' + p['birthday'])
        print('Balance: ' + self.balance + ' left')

    def withdraw_money(self, amount):
        self.balance = self.balance - amount(500)
        for p in data['accounts']:
            print('You have successfully withdrawn 500 grams from the account.')
            print('Account ID:' + p['account_id'])
            print('Account Type:' + p['account_type'])
            print('Full Name:' + p['full_name'])
            print('Birthday:' + p['birthday'])
            print('Balance: ' + self.balance + ' left')

    def new_week(self):
        return

class SuperRiceAccount(BaseAccount):
    def __init__(self, account_id, account_type, full_name, birthday, balance):
        super().__init__(account_id, account_type, full_name, birthday, balance)
        if self.balance >= 2000:
            print ('You still have ', self.balance, ' left.')
        else:
            print('You do not have enough balance.')

    def new_week(self):
        if initial_balance < 2000:
            self.balance = self.balance + 500
            print('Your new balance is ', self.balance, ' left')

while True:
    print('( 1 ) List All Accounts')
    print('( 2 ) Withdraw Rice from an Account')
    print('( 3 ) New Week')
    print('( 4 ) Exit')
    print('')
   option = int(input('Enter your choice: '))
    if option == 1:
      for p in data['accounts']:
          print('Account ID:'+ p['account_id'])
          print('Account Type:' + p['account_type'])
          print('Full Name:' + p['full_name'])
          print('Birthday:' + p['birthday'])
          print('Balance:'+ str(p["balance"]))
          print('')

    if option == 2:
        print('')
        i = input('Enter Account ID:')
        print('')
        for p in data['accounts']:
            if p ['account_id'] == i:
                print('Account ID:' + p['account_id'])
                print('Account Type:' + p['account_type'])
                print('Full Name:' + p['full_name'])
                print('Birthday:' + p['birthday'])
                print('Balance: ' + str(p["balance"]) + ' left')
                print('')
            else:
                amount = input('Input 500 to withdraw 500 grams from this account:')
                SuperRiceAccount.withdraw_money(amount)
                SuperRiceAccount.account_info(amount)
                for p in data['accounts']:
                    print('Account ID:' + p['account_id'])
                    print('Account Type:' + p['account_type'])
                    print('Full Name:' + p['full_name'])
                    print('Birthday:' + p['birthday'])
                    print('Balance:' + str(p["balance"]))
                    print('')
类基本帐户:
定义初始(自我、账户id、账户类型、全名、生日、余额、金额=500):
self.account\u id=帐户\u id
self.account\u type=账户类型
self.full\u name=全名
生日
自我平衡
self.amount=金额
def帐户信息(自我):
对于数据['accounts']中的p:
打印(“您已成功从帐户中提取500克”。)
打印('Account ID:'+p['Account_ID']))
打印('科目类型:'+p['科目类型']))
打印('Full Name:'+p['Full_Name']))
打印('birth:'+p['birth']))
打印('Balance:'+self.Balance+'left')
def取款(自身、金额):
self.balance=self.balance-金额(500)
对于数据['accounts']中的p:
打印(“您已成功从帐户中提取500克”。)
打印('Account ID:'+p['Account_ID']))
打印('科目类型:'+p['科目类型']))
打印('Full Name:'+p['Full_Name']))
打印('birth:'+p['birth']))
打印('Balance:'+self.Balance+'left')
def新_周(自我):
返回
类别SuperRiceAccount(基本帐户):
定义初始(自我、账户id、账户类型、全名、生日、余额):
super().\uuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
如果self.balance>=2000:
打印('您还有',self.balance,'左')
其他:
打印('您没有足够的余额')
def新_周(自我):
如果初始余额小于2000:
自平衡=自平衡+500
打印('您的新余额为',self.balance,'左')
尽管如此:
打印(‘(1)列出所有帐户’)
打印(‘(2)从帐户中提取大米’)
打印(‘(3)新的一周’)
打印(‘(4)退出’)
打印(“”)
option=int(输入('输入您的选择:'))
如果选项==1:
对于数据['accounts']中的p:
打印('Account ID:'+p['Account_ID']))
打印('科目类型:'+p['科目类型']))
打印('Full Name:'+p['Full_Name']))
打印('birth:'+p['birth']))
打印('余额:'+str(p[“余额”]))
打印(“”)
如果选项==2:
打印(“”)
i=输入('输入帐户ID:')
打印(“”)
对于数据['accounts']中的p:
如果p['account_id']==i:
打印('Account ID:'+p['Account_ID']))
打印('科目类型:'+p['科目类型']))
打印('Full Name:'+p['Full_Name']))
打印('birth:'+p['birth']))
打印('Balance:'+str(p[“Balance”])+'left')
打印(“”)
其他:
金额=输入('输入500以从此帐户提取500克:')
SuperRiceAccount.取款(金额)
SuperRiceAccount.账户信息(金额)
对于数据['accounts']中的p:
打印('Account ID:'+p['Account_ID']))
打印('科目类型:'+p['科目类型']))
打印('Full Name:'+p['Full_Name']))
打印('birth:'+p['birth']))
打印('余额:'+str(p[“余额”]))
打印(“”)

调用方法
draw\u money
时,应使用
SuperRiceAccount
对象
发生的情况是,当调用该函数时,amount作为第一个参数
self
传递,因此缺少第二个参数
amount



通过初始化来修复它:

bank = SuperRiceAccount([PASS HERE INITIALIZATION PARAMETERS])
并致电:

bank.withdraw_money(amount)
bank.account_info(amount)

调用方法
draw\u money
时,应使用
SuperRiceAccount
对象
发生的情况是,当调用该函数时,amount作为第一个参数
self
传递,因此缺少第二个参数
amount



通过初始化来修复它:

bank = SuperRiceAccount([PASS HERE INITIALIZATION PARAMETERS])
并致电:

bank.withdraw_money(amount)
bank.account_info(amount)

嗨,对不起,这不是吗?SuperRiceAccount.Draw\u money(amount)我尝试了您的建议,但遇到了一个错误:TypeError:\uuuuuu init\uuuuuuuuu()缺少5个必需的位置参数:“帐户id”、“帐户类型”、“全名”、“生日”和“余额”。很抱歉,在我这方面有太多的问题,编程不是很好。你应该传递初始化参数来创建一个银行帐户。上面的代码中有很多bug,所以它仍然不能全部修复(代码不是很清楚)。但是,对于您所询问的有关缺少
数量
参数的问题,上面已经给出了解释。@maria欢迎!如果答案解决了问题,则将其标记为已解决。嗨,对不起,这不是吗?SuperRiceAccount.Draw\u money(amount)我尝试了您的建议,但遇到了一个错误:TypeError:\uuuuuu init\uuuuuuuuu()缺少5个必需的位置参数:“帐户id”、“帐户类型”、“全名”、“生日”和“余额”。很抱歉,在我这方面有太多的问题,编程不是很好。你应该传递初始化参数来创建一个银行帐户。上面的代码中有很多bug,所以它仍然不能全部修复(代码不是很清楚)。但是,对于您所询问的有关缺少
数量
参数的问题,上面已经给出了解释。@maria欢迎!如果答案已解决,则将其标记为已解决