2017-01-29 75 views
-4

我正在尝试在网站上创建贷款计算器,并且在编写Python时遇到了麻烦。代码是:贷款计算器的Python编码问题

# user enter the cost of the loan, the interest rate, and 
#the number of years for the loan 
#Calculate monthly payments with the following formula 
# M = L[i(1+i)n]/[(1+i)n-2] 
# M = monthly payment 
# L = Loan amount 
# i = interest rate (for an interest rate of 5%, i = 0.05) 
# n = number of payments 
#________________________________________________________________________# 
#Start of program 
#Declare variables 

monthlypayment = 0 
loanamount = 0 
interestrate = 0 
numberofpayments = 0 
loandurationinyears = 0 
loanamount = raw_input("Lending Money ") 
interestrate = raw_input("Interest Rates are? ") 
loandurationinyears = raw_input("Time Duration in Years?") 
#Convert the strings into floating numbers so we can use them in the formula 
loandurationinyears = float(loandurationinyears) 
loanamount = float(loanamount) 
interestrate = float(interestrate) 
#Since payments are once per month, number of payments is number of years for the loan 
payments = loaninyears*12 
#calculate the monthly payment based on the formula 
payment = amount * interestrate * (7+ interestrate) * payments/((1 + interestrate) * payments -1) 
#Result to the program 
print("Payment will be " + st(monthlypayment)) 

任何有经验的人都可以帮助我获得此编码中的语法或其他逻辑错误吗?

+0

'loaninyears'没有定义。您将乘以12. – MYGz

+0

'print(“付款将是”+ st(monthlypayment))'我认为'st'应该是'str'这里 – MYGz

+0

金额应该可能是贷款金额,并且您从不给每月付款一个非零值 –

回答

1

您正在阅读之前未声明的变量。 更改loaninyearsloandurationinyearsloanamount

另外,你必须在最后一行一个错字,ST应该海峡

也有一些小窍门:

首先,你可以做的东西,如:

input = float(raw_input("Give me some number")) 

这这样可以缩短程序的长度。

而且你可能要考虑使用一个更可读的变量命名,例如:

loanInYearsloan_in_years

0

继紧密的评论你的公式,并使用Python 2.7,这个运行,但结果不正确。

# user enter the cost of the loan, the interest rate, and 
#the number of years for the loan 
#Calculate monthly payments with the following formula 
# M = monthly payment 
# L = Loan amount 
# i = interest rate (for an interest rate of 5%, i = 0.05) 
# n = number of payments 

L = input ('loan amount') 
i = input ('interest rate') 
n = input ('nr of payments') 

M = L*(i*(1+i)*n)/((1+i)*n-2) 

print (M) 

我想你应该先修复你的公式,除了编码错误。 特别是我错过了12号的地方,因为你的兴趣是每年,但你的付款是每月。

[编辑]

看Joshy的答案在这里:

Formula for calculating interest Python

并可能使用不同的视频教程,因为这一个似乎惹上麻烦很多人。

提示:ifyouhaveverylongvariablenames you_may_place_some_underscores_in_them