2013-05-03 2 views
0

많은 은행 거래 파일을 처리하는 프로그램을 작성해야합니다. 프로그램과 함께 사용해야하는 데이터 파일은 다음과 같습니다. 파일의 첫 번째 행은 은행 계좌의 수를 나타냅니다. 첫 번째 줄이 'x'이면 다음 'x * 2'줄은 을 포함하는 데이터 쌍입니다. • 은행 계좌 번호 • 현재 잔액 은행 계좌 개체를 만들어 목록에 입력해야합니다. 이 줄 뒤에는 트랜잭션에 대한 알 수없는 "데이터 집합"이 있습니다. 각 거래는 다음과 같이 구성됩니다. 거래 유형 (W, D, T 또는 B) 계좌 번호 금액 센티널 값은 거래 유형 "#"입니다. 이 내 코드는 지금까지 모습입니다 :Python 프로그래밍이 프로그램에 붙어 있습니다

class BankAccount: 
    def __init__(self, inputNum, inputAmount): 
     self.__acctNum = inputNum 
     self.__balance = inputAmount 
     self.__numDeposits = 0 
     self.__totalDeposits = 0 
     self.__numWithdrawals = 0 
     self.__totalWithdrawals = 0 

    def getAcctNum(self): 
     return self.__acctNum 

    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 Deposit(self,amount): 
     self.__balance = self.__balance + amount 
     self.__numDeposits = self.__numDeposits + 1 
     self.__totalDeposits = self.__totalDeposits + amount 

    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(): 

    list1 = [] 
    num = eval(input()) 

    for i in range(num): 
     account = input() 
     amount = eval(input()) 
     bankAccount = BankAccount(account,amount) 
     list1.append(bankAccount) 
     print(list1[i].getBalance()) 

    while(type != '#'): 
     if(type == 'D'): 
      account.deposit(amount) 
      elif(type == 'W'): 

     elif(type == 'T'): 

     elif(type == 'B'): 

첫 번째 질문 : 수행 목록 1 및 NUM = 평가 (입력())의 주요 기능을하기 전에 이동하거나 그것이처럼 좋은? 두 번째 질문 : type = eval (input())은 어디로 갈 것인가? 나는 그것이 list1과 num 바로 뒤에 올 것 같네요? 또한,이 프로그램을 끝내는 방법에 대한 제안이나 요령을 나에게 줄 수 있다면 정말 고맙겠습니다!

+3

을 좋아

당신이 정말로 주요 기능을 가지고 있지만 또한 결국 사용할 수있는 스크립트로 프로그램을 실행하려면

사용자 입력을 평가할 수있는 은행에 돈을주지 마십시오. :) – dansalmo

+1

'eval' 대신'float()'를 사용하십시오. –

답변

3

C, java, C# 등과 달리 실제로는 주요 기능에 대한 엄격한 요구가 없습니다. 실제로 전체 주 기능 블록을 제거하고 일반 명령 줄로 쓸 수 있습니다.

if __name__ == "__main__": 
    main() 

그래서 첫 번째 질문에 대한 답은 다음과 같습니다 : 어쨌든 당신은