我需要代码方面的帮助,我的任务是计算每月付款以及给定利息下的总付款。用户输入贷款金额和年份。然后,该程序使用tkinter在窗口中显示付款,直到利息达到8.0。
我的问题是我无法让我的程序显示利息,它只显示0.0,但给我错误“ annualInterestRate未定义”,该程序显示每月和总还款额很好,但只显示第一行并且不会继续显示其余的付款。
我真的是编程新手,所以请多多指教。
以下是完整文件的链接:https://pastebin.com/AUicQzu0
def Calculate(self):
monthlyPayment = self.getMonthlyPayment(
float(self.loanamountVar.get()),
int(self.yearsVar.get()),
float(self.annualInterestRateVar.get()))
self.monthlyPaymentVar.set(format(monthlyPayment, '10.2f'))
totalPayment = float(self.monthlyPaymentVar.get()) * 12 * int(self.yearsVar.get())
self.totalPaymentVar.set(format(totalPayment, '10.2f'))
self.annualInterestRateVar.set(annualInterestRate)
def getMonthlyPayment(self, loanamount, years, annualInterestRate):
annualInterestRate = 5.0
while annualInterestRate <= 8.0:
monthlyInterestRate = annualInterestRate / 1200
monthlyPayment = loanamount * monthlyInterestRate / (1 - 1 / (1 + monthlyInterestRate) ** (years * 12))
annualInterestRate += 1.0 / 8
return monthlyPayment
答案 0 :(得分:0)
在Calculate
的最后一行中,您尝试从变量annualInterestRate
获取值并分配给self.annualInterestRateVar
self.annualInterestRateVar.set(annualInterestRate)
但是annualInterestRate
是仅存在于Calculate
中的局部变量,与annualInterestRate
中存在的局部变量getMonthlyPayment
无关
因此,您尝试从变量annualInterestRate
获取值,但没有在annualInterestRate
中将任何值分配给Calculate
。
对于Python,您尝试从从未创建的变量中获取价值。因此,Python显示
annualInterestRate is not defined
我不知道您尝试在self.annualInterestRateVar.set(...)
中使用什么价值。如果它是来自annualInterestRate
中存在的局部变量getMonthlyPayment
的值,那么也许您应该从getMonthlyPayment
返回它
return monthlyPayment, annualInterestRate
并加入Calculate
monthlyPayment, annualInterestRate = self.getMonthlyPayment(...)
顺便说一句:您在while
的{{1}}循环中有错误的缩进,并且它将在第一个循环后退出getMonthlyPayment
。