房贷计算器——加入UI界面(二)

'''
文字‘房贷计算器’
文字‘贷款总金额’:输入框
文字‘贷款期限’:输入框
文字‘年利率’:输入框
按钮‘开始计算’
返回:
月供
总利息

'''
from tkinter import *

class Application():
    def __init__(self,app=None):
        self.app=app
        self.application()
    def application(self):
        
        #房贷计算器
        self.label=Label(self.app,text='房贷计算器',font=('黑体', 16)).grid(row=0)
        #贷款总金额
        self.label1=Label(app,text='贷款总金额',font=('黑体', 16)).grid(row=1)
        #输入框(贷款总金额)
        self.v1=StringVar()
        self.entry1=Entry(app,textvariable=self.v1,font=('黑体', 16)).grid(row=1,column=1)
        self.label1=Label(app,text='贷款总金额',font=('黑体', 16)).grid(row=1)
        self.unit1=Label(app,text='元',font=('黑体', 16)).grid(row=1,column=2)
        #标签Label2
        self.label2=Label(app,text='贷款期限',font=('黑体', 16)).grid(row=2)
        #输入框(贷款期限)
        self.v2=StringVar()
        self.entry2=Entry(app,textvariable=self.v2,font=('黑体', 16)).grid(row=2,column=1)
        self.unit2=Label(app,text='年',font=('黑体', 16)).grid(row=2,column=2)


        #标签Label3
        self.label3=Label(app,text='年利率',font=('黑体', 16)).grid(row=3)
        #输入框(贷款期限)
        self.v3=StringVar()
        self.entry3=Entry(app,textvariable=self.v3,font=('黑体', 16)).grid(row=3,column=1)
        self.unit3=Label(app,text='%',font=('黑体', 16)).grid(row=3,column=2)
        import math
        def fangdai():
            '''
            房贷计算器
            输入:I:年利率 N:总月数 a:贷款总额
            输出:总利息
            '''
            a=int(self.v1.get())
            N=int(self.v2.get())*12
            print(N)
            I=float(self.v3.get())*0.01
            i=I/12#月利率
            b=(a*i*math.pow((1+i),N))/(math.pow(1+i,N)-1)#月供
            zl=0#总利息
            for j in range(1,N+1):
                #每月利息
                l=(a*i-b)*((1+i)**(j-1))+b
                zl+=l
            self.result=Label(app,text='总利息='+str(round(zl,2)),font=('黑体', 20)).grid(row=5,column=1)
            self.result1=Label(app,text='月供='+str(round(b,2)),font=('黑体', 20)).grid(row=6,column=1)
        self.bt=Button(self.app,text='开始计算',command=fangdai,font=('黑体', 16)).grid(row=4,column=1)
if __name__=='__main__':
    app=Tk()
    app.title('房贷计算器')
    App=Application(app)

    app.geometry('450x300+200+300')#窗口大小设置
    app.mainloop()

在这里插入图片描述

填坑

(1)AttributeError: ‘NoneType’ object has no attribute 'XXX’的错误

from tkinter import *
app = Tk()
b = Entry(app).pack()
a = b.get()

解决方法:把代码分两行写

b = Entry(app)
b.pack()

Tkinter:AttributeError: ‘NoneType‘ object has no attribute ‘XXX‘解决方法

参考文献

用 Pyinstaller 模块将 Python 程序打包成 exe 文件(全网最全面最详细)

conda activate python3
Pyinstaller -F -w  filename(.py)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Little_Yuu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值