房贷计算器——新增选择还款方式

#!/usr/bin/env python
# coding: utf-8# In[4]:'''
文字‘房贷计算器’
文字‘贷款总金额’:输入框
文字‘贷款期限’:输入框
文字‘年利率’:输入框
按钮‘开始计算’
返回:
月供
总利息'''
from tkinter import *
import time
class Application():def __init__(self,app=None):self.app=appself.application()self.n1=0self.e0=self.e1=0def application(self):'''功能一:创建输入界面,包含:标题0、贷款金额1、期限2和利率3'''#0房贷计算器self.label0=Label(self.app,text='房贷计算器',font=('黑体',20)).grid(row=0,column=1)#1贷款总金额self.label1=Label(self.app,text='贷款总金额',font=('黑体', 16)).grid(row=1)#1输入框(贷款总金额)1self.v1=StringVar()self.entry1=Entry(self.app,textvariable=self.v1,font=('黑体', 16)).grid(row=1,column=1)self.label1=Label(self.app,text='贷款总金额',font=('黑体', 16)).grid(row=1)self.unit1=Label(self.app,text='元',font=('黑体', 16)).grid(row=1,column=2)#2标签Label2self.label2=Label(self.app,text='贷款期限',font=('黑体', 16)).grid(row=2)#2输入框(贷款期限)self.v2=StringVar()self.entry2=Entry(self.app,textvariable=self.v2,font=('黑体', 16)).grid(row=2,column=1)self.unit2=Label(self.app,text='年',font=('黑体', 16)).grid(row=2,column=2)#3标签Label3self.label3=Label(self.app,text='年利率',font=('黑体', 16)).grid(row=3)#3输入框(贷款期限)self.v3=StringVar()self.entry3=Entry(self.app,textvariable=self.v3,font=('黑体', 16)).grid(row=3,column=1)self.unit3=Label(self.app,text='%',font=('黑体', 16)).grid(row=3,column=2)#选择还款方式:0等额本息;1等额本金self.var=IntVar()self.ra0=Radiobutton(self.app,text='等额本息',variable=self.var,value=0,font=('黑体',16))self.ra0.grid(row=4,column=0)self.ra1=Radiobutton(self.app,text='等额本金',variable=self.var,value=1,font=('黑体',16))self.ra1.grid(row=4,column=1)       import mathdef fangdai():'''房贷计算器输入:I:年利率 N:年限 a:贷款总额输出:总利息'''def not_num(x):try:float(x)return Falseexcept Exception as e:return True#1if self.v1.get()=='':self.erro1=Label(self.app,text='请输入贷款总金额',font=('黑体', 10),fg='red')self.erro1.config(background='white')self.erro1.grid(row=1,column=1)self.app.after(3000,self.erro1.destroy)elif not self.v1.get().isdigit():self.erro1=Label(self.app,text='请输入数字',font=('黑体', 10),fg='red')self.erro1.config(background='white')self.erro1.grid(row=1,column=1)self.app.after(3000,self.erro1.destroy)if self.v2.get()=='':self.erro2=Label(self.app,text='请输入贷款期限',font=('黑体', 10),fg='red')self.erro2.config(background='white')self.erro2.grid(row=2,column=1)self.app.after(3000,self.erro2.destroy)elif not self.v2.get().isdigit():self.erro2=Label(self.app,text='请输入数字',font=('黑体', 10),fg='red')self.erro2.config(background='white')self.erro2.grid(row=2,column=1)self.app.after(3000,self.erro2.destroy)if self.v3.get()=='':self.erro3=Label(self.app,text='请输入年利率',font=('黑体', 10),fg='red')self.erro3.config(background='white')self.erro3.grid(row=3,column=1)self.app.after(3000,self.erro3.destroy)elif not_num(self.v3.get()):print('lalala')self.erro3=Label(self.app,text='请输入数字',font=('黑体', 10),fg='red')self.erro3.config(background='white')self.erro3.grid(row=3,column=1)self.app.after(3000,self.erro3.destroy)a=int(self.v1.get())N=int(self.v2.get())*12I=float(self.v3.get())*0.01i=I/12#月利率if self.var.get()==0:'''等额本息'''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))+bzl+=lif self.e1==1:self.result2.destroy()self.result3.destroy()self.result4.destroy()print('lalaladddd')self.result0=Label(self.app,text='总利息='+str(round(zl,2)),font=('黑体', 20))self.result0.grid(row=7,column=1)self.result1=Label(self.app,text='月供='+str(round(b,2)),font=('黑体', 20))self.result1.grid(row=8,column=1)self.e0=1else:'''等额本金return:0总利息1首月还款2每月递减'''#0总利息zl=0for j in range(1,N+1):l=(a-(j-1)*(a/N))*izl+=l#1首月还款b=a/N+a*i#2每月递减d=a/N*I/12if self.e0==1:self.result0.destroy()self.result1.destroy()self.result2=Label(self.app,text='总利息='+str(round(zl,2)),font=('黑体', 20))self.result2.grid(row=7,column=1,columnspan=2)self.result3=Label(self.app,text='首月还款='+str(round(b,2)),font=('黑体', 20))self.result3.grid(row=8,column=1,columnspan=2)self.result4=Label(self.app,text='每月递减='+str(round(d,2)),font=('黑体', 20))self.result4.grid(row=9,column=1,columnspan=2)self.e1=1def get_canvas():self.img =PhotoImage(file = r'.\IMG_5768.png')if self.n1==0:self.n1+=1self.pic=Label(self.app,image=self.img).grid(columnspan=3)            self.bt=Button(self.app,text='开始计算',command=fangdai,font=('黑体', 16)).grid(row=5,column=1)self.bt=Button(self.app,text='生成图表',command=get_canvas,font=('黑体', 16)).grid(row=6,column=1)#以下为添加图表if __name__=='__main__':app=Tk()app.title('房贷计算器')App=Application(app)app.geometry('600x600+300+150')#窗口大小设置app.mainloop()

两种还款方式:等额本息和等额本金


错误提示机制

1、请输入金额

            if self.v1.get()=='':self.erro1=Label(self.app,text='请输入贷款总金额',font=('黑体', 10),fg='red')self.erro1.config(background='white')self.erro1.grid(row=1,column=1)self.app.after(3000,self.erro1.destroy)

2、请输入数字

            elif not self.v2.get().isdigit():self.erro2=Label(self.app,text='请输入数字',font=('黑体', 10),fg='red')self.erro2.config(background='white')self.erro2.grid(row=2,column=1)self.app.after(3000,self.erro2.destroy)

房贷计算器——新增选择还款方式相关推荐

  1. Windows phone7 软件发布:理财计算器(包括wp7房贷计算器,wp7个税计算器,wp7存款利息计算器)...

    前一段时间,需要经常用到贷款计算器的功能,这样有利于我们做出更好的决策.但是我们只能通过银行的工作人员的计算器来计算,给我带来了极大的不便和损失,由此便萌生了开发一个Windows phone7版的贷 ...

  2. uniapp 做的一个房贷计算器

    在支付宝的文档中找到一个比较详细的公式 等额本息计算公式 每月还款额=贷款本金×[月利率×(1+月利率)^还款月数]÷[(1+月利率)^还款月数-1]总支付利息:总利息=还款月数×每月月供额-贷款本金 ...

  3. 【寻找最佳小程序】10期:小小房贷计算器——快捷、易用,小白购房必备

    为了更好地展示这些优秀的小程序,展现背后的开发者/团队风彩,CSDN特别推出了[寻找最佳小程序]系列访谈栏目,以期分享每款优秀小程序背后的产品创意与研发故事,探究创新性应用场景,发现不一样的创业机会. ...

  4. jQueryEasyUI实现房贷计算器详细教程2--jQuery部分

    1.从载入JavaScript开始 jQuery 是一个 JavaScript 库,极大地简化了 JavaScript 编程.这一部分介绍下载和载入jQuery. 源代码: <script sr ...

  5. jQueryEasyUI实现房贷计算器详细教程1--HTML部分

    1.HTML文件的基本构成 我们从最基础的一段HTML代码开始编程: <!DOCTYPE html> <html><head><meta charset=&q ...

  6. JavaScript:综合案例---房贷计算器的实现

    房贷计算器的实现 (可以使用的编辑器:webStrom.subLime.notePad++.editPlus) 输入数据: 平方单价 70,000.00 元/平方  B1 租金 382.50 元/平方 ...

  7. 【Excel】可浮动利率(LPR)和提前还款的房贷计算器

    1 灵感来源 网上有现成的计算器,为什么还要自己做? 因为网页版的房贷计算器看不到过程,不知其所以然,不知道能不能完全信任. 加上朋友咨询提前还款的问题,又LPR开始执行,从现实和书里汲取了灵感,开始 ...

  8. PHP房贷计算器【附代码、简洁能用、亲测有效】

    PHP房贷计算器 目录 一.设计思路 二.代码 房贷计算器页面 房贷计算器后台 三.效果图 一.设计思路 基于PHP设计的房贷计算器,完全能用,符合最新利率 二.代码 房贷计算器页面 <meta ...

  9. 【Python】一个房贷计算器功能的小案例

    题目要求: 房贷计算公式如下: 〉每月月供参考=贷款金额×[月利率×(1+月利率)^还款月数]÷{[(1+月利率)^还款月数]–1}>还款总额=每月月供参考×期限× 12 ≥支付利息=还款总额– ...

最新文章

  1. Linux之mkdir和rm命令选项
  2. 添加打印机还显示脱机_打印机总是显示脱机无法打印的解决办法
  3. Java Review - LinkedHashMap LinkedHashSet 源码解读
  4. 32位选择进位加法器_32位加减法器设计
  5. PGM中置信传递、和—积算法
  6. JAVA进制及进制之间的转换
  7. SAP UI5 Web Component的图标实现
  8. linux的进程与库之间的通信两种方式
  9. mysql10.3修改默认存储路径
  10. python spark安装_windows下安装spark-python
  11. Matlab中的continue、break和return语句
  12. 1688.比赛中的配对次数-LeetCode
  13. VB 设置ListView中指定一行的背景颜色
  14. [Bzoj1085] [SCOI2005]骑士精神
  15. 该来的还是要来,数据挖掘
  16. poj -- 1042 Gone Fishing(枚举+贪心)
  17. HDF5: 读写速度与文件的大小
  18. 均值与标准差函数MATLAB
  19. 如何将epub电子书格式转换成txt文本
  20. 量子卡塔教您如何在Q#中进行量子编程

热门文章

  1. R语言与数据分析实战11-数据的删除
  2. gcc生成静态库.a和动态库.so和OpenCV3.4.11的安装及使用示例
  3. 新小程序消息推送平台,不止于推送!
  4. 前端面试常问的题目(持续更新中)
  5. Node.js后端开发 - 基础篇 #18 nodemon工具
  6. 三星android死机,[解决]三星S10完全停止工作。该怎么办?
  7. 华为11ui有鸿蒙,与EMUI11界面相似?华为工作人员:鸿蒙OS正式版将采用全新UI
  8. Linux上Jvm性能调优方法
  9. 归属感:2010-2011赛季NBA常规赛开幕随想
  10. 获取mimeType