当我 运行 在 python 中使用 while 循环的命令时,我遇到了金额问题
I am having issues with the amount when I run the command with while loop in python
我导入了一个 json 文件并为 super rice 的 rice bank 帐户创建了一个 while 循环。我在父代码下创建 def 但遇到错误:TypeError: withdraw_money() missing 1 required positional argument: 'amount'。我还尝试为每个子类设置新的一周新值,超级大米帐户和预付将附加 500,普通大米 A 附加 0。由于错误,我坚持使用 SuperRiceAccount.withdraw_money(amount),但我仍然需要弄清楚新一周的功能。谁能帮帮我?
下面是我的代码
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('')
调用方法 withdraw_money
时应使用 SuperRiceAccount
对象。
发生的情况是,当您调用该函数时,金额作为第一个参数 self
传递,因此缺少第二个参数 amount
。
通过初始化修复它:
bank = SuperRiceAccount([PASS HERE INITIALIZATION PARAMETERS])
并调用:
bank.withdraw_money(amount)
bank.account_info(amount)
我导入了一个 json 文件并为 super rice 的 rice bank 帐户创建了一个 while 循环。我在父代码下创建 def 但遇到错误:TypeError: withdraw_money() missing 1 required positional argument: 'amount'。我还尝试为每个子类设置新的一周新值,超级大米帐户和预付将附加 500,普通大米 A 附加 0。由于错误,我坚持使用 SuperRiceAccount.withdraw_money(amount),但我仍然需要弄清楚新一周的功能。谁能帮帮我?
下面是我的代码
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('')
调用方法 withdraw_money
时应使用 SuperRiceAccount
对象。
发生的情况是,当您调用该函数时,金额作为第一个参数 self
传递,因此缺少第二个参数 amount
。
通过初始化修复它:
bank = SuperRiceAccount([PASS HERE INITIALIZATION PARAMETERS])
并调用:
bank.withdraw_money(amount)
bank.account_info(amount)