2014-03-28 7 views
0

대출 비용을 계산하는 함수를 작성하려고하지만 대출 비용을 사용자가 입력 한 금액의 음수 값으로 유지합니다. 차관.함수의 다중 매개 변수 정의 Python

#define monthly payment 
def MonthlyPayment (ammountOfLoan, numberOfPeriods,yearlyInterestRate): 
    ammountOfLoan = 0 
    numberOfPeriods = 0 
    yearlyInterestRate = 0 
    payment = [(yearlyInterestRate/12)/(1-(1+yearlyInterestRate/12))**(-numberOfPeriods)] * ammountOfLoan  
    return (payment) 


#define cost of loan  
def LoanCost(principal, month, payment): 
    period = 0 
    month = 0 
    payment = 0 
    cost = period * payment - principal 
    return (cost) 

#calculate cost of loan 
def main(): 
    loan = float(raw_input("What is the ammount of your loan? ")) 
    period = float(raw_input("How many months will you make payments? ")) 
    rate = float(raw_input("What is the interest rate? ")) 
    rate = rate/100 
    MonthlyPayment(loan, period, rate) 
    costOfLoan = LoanCost(loan, period, rate) 
    print "The cost of the loan is $" + str(costOfLoan) 

#run main 
main() 
+0

'pdb'는 친구입니다 – shx2

+0

그냥 값을 바로 버리려면 왜 인수에 합격하겠습니까? (예를 들어'numberOfPeriods = 0'을 실행함으로써). 당신은 파이썬의 기초를 정말로 넘어야합니다. 튜토리얼, 워드 프로세서, 파이썬을 어려운 방법, 코드 아카데미, 기타로 배우십시오. – acushner

답변

3

LoanCost는 다음을 곱하여, 0 기간 및 지불 (당신은뿐만 아니라, MonthlyPayment에서 같은 실수하는거야) 설정입니다. 따라서 당신은 (0 * 0)으로 끝납니다 - 교장. 또한 두 번째 매개 변수를 "월"이라고하는데, 실제로 의미하는 것이 "마침표"일 때입니다. 당신은 당신은 함수 본체 내부에 제로로 a, b, c를 초기화하지 않아야

def func(a, b, c): 

같은 함수 정의가있을 때

그냥 명확히한다. 그렇게하면 값을 덮어 쓰게됩니다. 그냥 직접 사용하십시오.