在python中使用while循环运行命令时,我遇到了数量问题
我导入了一个json文件,并为超级大米的大米银行帐户创建了一个while循环。我在父代码下创建def,但遇到错误:TypeError:draw_money()缺少1个必需的位置参数:“amount”。我还尝试为每个子类的新周添加新的值,这些子类将为超级大米帐户追加500,为普通大米A追加预付费,为0。我被超级大米帐户卡住了。由于错误,我需要提取钱(金额),我仍然需要为新周计算函数。有人能帮我吗 下面是我的代码在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,
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欢迎!如果答案已解决,则将其标记为已解决