我有一个巨大的问题,我真的不知道我写的代码有什么问题,它肯定与我为输入文件设置的输入有关,但我'我在墙上,我真的不知道如何继续Python类与循环:银行帐户
我得到输入名称错误,但这是本书如何显示如何设置第一个存款。输入文件在主程序下面。
我的问题是,有人知道我在主要输入的输入有什么问题吗?他们似乎是正确的,但我一直得到一个NameError:ABC123没有为我试图推出的每一个变化定义。
class BankAccount:
def __init__(self, getbankaccount, inputAmount=0):
self.__balance = inputAmount
self.__numDeposits = 0
self.__numWithdrawals = 0
self.__totalDeposits = 0
self.__totalWithdrawals = 0
self.__getbankaccount=getbankaccount
def getBalance(self):
return self.__balance
def getNumDeposits(self):
return self.__numDeposits
def getNumWithdrawals(self):
return self.__numWithdrawals
def getTotalDeposits(self):
return self.__totalDeposits
def getTotalWithdrawals(self):
return self.__totalWithdrawals
def getbankaccount(self):
return self.__getbankaccount
def Deposit(self,amount):
self.__balance = self.__balance + amount
self.__numDeposits = self.__numDeposits + 1
self.__totalDeposits = self.__totalDeposits + amount
return self.__balance
def Withdrawal(self,amount):
if (self.__balance >= amount):
self.__balance = self.__balance - amount
self.__numWithdrawals = self.__numWithdrawals + 1
self.__totalWithdrawals = self.__totalWithdrawals + amount
return True
else:
return False
def main():
acctlist=[]
account=input()
amount=eval(input())
type=input()
while(type!='#'):
if (type=='D'):
account=input()
amount=eval(input())
for i in range(len(acctlist())):
if (account==acctlist[i].getbankaccount()):
index=i
acctlist[index].Deposit(amount)
PrintSuccessfullTrans(account, type, amount, acctlist[index].getBalance())
elif (type=='W'):
account=input()
amount=eval(input())
for i in range(len(acctlist())):
if (account==acctlist[i].getbankaccount()):
index=i
status=(acctlist[index].Withdrawal(amount))
if (status == True):
PrintSuccessfulTrans(account, type, amount, acctlist[index].getbalance())
else:
PrintDenied(account, type, amount, "<DENIED>")
elif (type == 'B'):
type=ConvertType(type)
amount=eval(input)
print(acctlist[i].getbankaccount(), amount)
elif (type == 'T'):
account1=input()
account2=input()
amount=eval(input())
for i in range(len(acctlist())):
if (accoun1t==acctlist[i].getbankaccount()):
index=i
acctlist[index].Deposit(amount)
if status == True:
print('Test1')
else:
print('Test2')
for g in range(len(acctlist())):
if (account2==acctlist[i].getbankaccount()):
index=g
acctlist[index].Withdrawal(amount)
account=input()
amount=eval(input())
type=input()
def PrintSuccessfulTrans(account,type, amount, balance):
typeName = ConvertType(type)
print("{:8s}{:12}{:8.2f}{:12.2f}".format(account,typeName,amount,balance))
def PrintDenied(account,type,amount, balance):
typeName = ConvertType(type)
print("{:8s}{:12}{:8.2f}{:>12}".format(account,typeName,amount,balance))
def ConvertType(type):
if (type == 'D'):
return "Deposit"
elif (type == 'W'):
return "Withdrawal"
elif (type == 'B'):
return "Balance"
main()
11
ABC123
500
DEF456
1000
XYZ999
2056
MNI612
2012
CKE909
1313
THM115
5783
WBS319
2041
GFL522
10238
JDT121
876
JFL216
9218
GRP904
820
W
JFL216
587.24
D
MNI612
420.45
D
XYZ999
214.38
W
THM115
1045.23
D
WBS319
258.30
W
JDT121
924.10
T
GFL522
JDT121
2000
B
GFL522
0
B
XYZ999
0
T
DEF456
ABC123
50.50
#
#
你的问题是什么? – serk 2013-05-05 19:38:44
我的输入有什么问题,因为我不断收到NameError。编辑中我会更清楚,对不起。 – user2305960 2013-05-05 19:40:00