房贷计算器,妥妥的数学计算

2024-03-07 20:10

本文主要是介绍房贷计算器,妥妥的数学计算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

根据给出的公式,编写房贷计算器。妥妥的数学计算,把数学公式“翻译”成代码就好。


(笔记模板由python脚本于2024年01月06日 18:08:55创建,本篇笔记适合初具基本编程能力的coder翻阅)


【学习的细节是欢悦的历程】

  • Python 官网:https://www.python.org/

  • Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
    地址:https://lqpybook.readthedocs.io/


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


  • My CSDN主页、My HOT博、My Python 学习个人备忘录
  • 好文力荐、 老齐教室
等风来,不如追风去……


根据题目给出的公式
房 贷 计 算 器
(用代码“翻译”数学公式就好)


本文质量分:

91

本文地址: https://blog.csdn.net/m0_57158496/article/details/135429982

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

  • ◆ 房贷计算器
    • 1、题目描述
    • 2、算法解析
      • 2.1 简陋版
    • 3、“经典”版
      • 3.1 输入贷款金额和期限
      • 3.2 贷款类型选择
      • 3.3 据贷款类型和期限确定贷款年利率
    • 4、完整源码(Python)


◆ 房贷计算器


1、题目描述


  • 题目描述截屏图片
    在这里插入图片描述

题目来源于CSDN问答社区提问“房贷计算器”


房贷计算公式如下:

每 月 月 供 参 考 = 贷 款 金 额 × [ 月 利 率 × ( 1 + 月 利 率 ) 还 款 月 数 ] ÷ [ ( 1 + 月 利 率 ) 还 款 月 数 − 1 ] 每月月供参考 = 贷款金额 × [月利率 × (1 + 月利率) ^ {还款月数}] ÷ [(1 + 月利率) ^ {还款月数} - 1] =×[×(1+)]÷[(1+)1]
还 款 总 额 = 每 月 月 供 参 考 × 期 限 × 12 还款总额 = 每月月供参考 × 期限 × 12 =××12
支 付 利 息 = 还 款 总 额 − 贷 款 金 额 × 10000 支付利息 = 还款总额 - 贷款金额 × 10000 =×10000
  以上计算方式中月利率( 月 利 率 = 利 率 ÷ 12 月利率 = 利率 ÷ 12 =÷12)指以月为计息周期计算的利息。不同贷款类型的利率是不同的:对于商业贷款而言,五年以下(含五年)的贷款利率是4.75%,五年以上的贷款利率是4.90%;对于公积金贷款利率而言,五年以下(含五年)的贷款利率是2.75%,五年以上的利率是3.25%。

  本案例要求编写程序,根据以上计算方式开发一个房贷计算器。


  这“支付利息”怎么理解啊,怎么感觉那后面的“$ × 10000$”不大对劲哩?



回页目录


2、算法解析


  这个题目就是妥妥的数学计算,把给出的公式“翻”成代码就大功告成。😋
&emsp&emk但不是没有一点技巧,“月供参考”公式中有两个相同的部分“ ( 1 + 月 利 率 ) 还 款 月 数 (1 + 月利率) ^ {还款月数} (1+)”,如果直接代入数据,相同的计算在一个公式中分别计算两次,这是不Python的行为。我们可以先行计算“ ( 1 + 月 利 率 ) 还 款 月 数 (1 + 月利率) ^ {还款月数} (1+)”的值赋给一个变量保存,在公式中直接引用变岂不更妙!

“月供参考”公式可以简化为:

e x p o n e n t = ( 1 + 月 利 率 ) 还 款 月 数 exponent = (1 + 月利率) ^ {还款月数} exponent=(1+)
每 月 月 供 参 考 = 贷 款 金 额 × ( 月 利 率 × e x p o n e n t ) ÷ ( e x p o n e n t − 1 ) 每月月供参考 = 贷款金额 × (月利率 × exponent) ÷ (exponent - 1) =×(×exponent)÷(exponent1)


2.1 简陋版


  贷款年利率、贷款金额、贷款期限都从键盘输入,简单实现。


  • 代码运行效果截屏图片
    在这里插入图片描述

Python代码

#!/sur/bin/nve python
# coding: utf-8
def calculatorMortgage(rate, money, year):''' 房贷计算器 '''rateMonth = rate/12/100 # 月利率。months = 12*year # 贷款期限。exponent = (1+rateMonth)**months # 月供计算指数monthly = (money*(rateMonth*exponent))/(exponent-1) # 月供。moneys = monthly*months # 还款总额。return round(moneys, 2), round(moneys-money, 2) # 返回还款总额和支付利息。
if __name__ == '__main__':data = input(f"\n输入年利率、贷款金额、贷款期限:\n{'':>10}(如4.75 50000 3):\n\n{'':>11}$ ").strip()data = map(eval, data.split())result = calculatorMortgage(*data)print(f"\n输出:\n应还总金额:{result[0]:.2f}\n利息:{result[1]}")



回页目录


3、“经典”版


  只输入贷款金额和期限,贷款类型选择,由贷款类型和期限确定贷款利率。


3.1 输入贷款金额和期限

  • 贷款金额和期限输入
    在这里插入图片描述

    错误输入将退出程序
    在这里插入图片描述

Python代码

title = f"\033[2J{' 房贷计算器 ':=^35}\n\n"data = input(f"{title}\n{' 输入贷款金额、贷款期限(年) ':^28}\n{'':~^40}\n{'(如20000 3)':^39}\n\n{'':>13}$ ").strip()try:money, year = map(eval, data.split())except Exception as error:print(f"\n{' 输入错误!':~^35}\n\n\n{'':=^40}\n")exit()



回页目录


3.2 贷款类型选择

  • 代码运行效果截屏图片
    在这里插入图片描述

    选择错误,重试。直到选对
    在这里插入图片描述

Python代码


def isFlag():''' 贷款类型选择 '''title = f"\033[2J{' 贷款类型选择 ':=^34}\n\n"flag = input(f"{title}\n{'1. 商业贷款  2. 公积金贷款':^31}\n{'':~^40}\n\n{'':>6}选择序号:").strip()if flag not in ('1', '2'):input(f"\n\n{' 选择错误!':^35}\n{'':~^40}\n{'(请重试)':^36}")isFlag()else:return flag 



回页目录


3.3 据贷款类型和期限确定贷款年利率


  • 代码运行效果截屏
    在这里插入图片描述

贷款利率确定代码

flag = isFlag() # 选择贷款类型。if flag == '1':rate = 4.9 if year > 5 else 4.75 # 商业贷款。else:rate = 3.25 if year > 5 else 2.75 # 公积金贷款。

计算输出代码

rateMonth = rate/12/100 # 月利率。months = 12*year # 贷款期限。exponent = (1+rateMonth)**months # 月供计算指数monthly = (money*(rateMonth*exponent))/(exponent-1) # 月供。moneys = monthly*months # 还款总额。print(f"{title}\n{'':>12}年利率:{rate}\n{'':>14}贷款:{money:.2f}\n{'':>14}期限:{year}年\n\n{'':>8}应还总金额:{moneys:.2f}\n{'':>10}其中利息:{moneys-money:.2f}\n\n{'':=^40}")



回页目录


4、完整源码(Python)

(源码较长,点此跳过源码)

# 简陋版 #
#!/sur/bin/nve python
# coding: utf-8
def calculatorMortgage(rate, money, year):''' 房贷计算器 '''rateMonth = rate/12/100 # 月利率。months = 12*year # 贷款期限。exponent = (1+rateMonth)**months # 月供计算指数monthly = (money*(rateMonth*exponent))/(exponent-1) # 月供。moneys = monthly*months # 还款总额。return round(moneys, 2), round(moneys-money, 2) # 返回还款总额和支付利息。
if __name__ == '__main__':data = input(f"\n输入年利率、贷款金额、贷款期限:\n{'':>10}(如4.75 50000 3):\n\n{'':>11}$ ").strip()data = map(eval, data.split())result = calculatorMortgage(*data)print(f"\n输出:\n应还总金额:{result[0]:.2f}\n利息:{result[1]}") # 年利率4.75,借5w,三年。# 经典版 #
#!/sur/bin/nve python
# coding: utf-8def isFlag():''' 贷款类型选择 '''title = f"\033[2J{' 贷款类型选择 ':=^34}\n\n"flag = input(f"{title}\n{'1. 商业贷款  2. 公积金贷款':^31}\n{'':~^40}\n\n{'':>6}选择序号:").strip()if flag not in ('1', '2'):input(f"\n\n{' 选择错误!':^35}\n{'':~^40}\n{'(请重试)':^36}")isFlag()else:return flag def calculatorMortgage(): # 形参分别是年利率、贷款金额、贷款期限(年)。''' 房贷计算器 '''title = f"\033[2J{' 房贷计算器 ':=^35}\n\n"data = input(f"{title}\n{' 输入贷款金额、贷款期限(年) ':^28}\n{'':~^40}\n{'(如20000 3)':^39}\n\n{'':>13}$ ").strip()try:money, year = map(eval, data.split())except Exception as error:print(f"\n{' 输入错误!':~^35}\n\n\n{'':=^40}\n")exit()flag = isFlag() # 选择贷款类型。if flag == '1':rate = 4.9 if year > 5 else 4.75else:rate = 3.25 if year > 5 else 2.75rateMonth = rate/12/100 # 月利率。months = 12*year # 贷款期限。exponent = (1+rateMonth)**months # 月供计算指数monthly = (money*(rateMonth*exponent))/(exponent-1) # 月供。moneys = monthly*months # 还款总额。print(f"{title}\n{'':>12}年利率:{rate}\n{'':>14}贷款:{money:.2f}\n{'':>14}期限:{year}年\n\n{'':>8}应还总金额:{moneys:.2f}\n{'':>10}其中利息:{moneys-money:.2f}\n\n{'':=^40}")if __name__ == '__main__':calculatorMortgage()



回页首


上一篇:  “火火的”动态(集结我的人气Blink索引列表,Python脚本自动生成)
下一篇: 



我的HOT博:

  本次共计收集289篇博文笔记信息,总阅读量44.72w。数据采集于2023年12月11日 23:07:13,用时5分11.8秒。阅读量不小于4.0k的有17篇。

  1. ChatGPT国内镜像站初体验:聊天、Python代码生成等
    地址:https://blog.csdn.net/m0_57158496/article/details/129035387
    浏览阅读:6.2w
    点赞:127 收藏:809 评论:71
    (本篇笔记于2023-02-14 23:46:33首次发布,最后修改于2023-07-03 05:50:55)

  2. 让QQ群昵称色变的神奇代码
    地址:https://blog.csdn.net/m0_57158496/article/details/122566500
    浏览阅读:5.8w
    点赞:24 收藏:86 评论:17
    (本篇笔记于2022-01-18 19:15:08首次发布,最后修改于2022-01-20 07:56:47)

  3. Python列表(list)反序(降序)的7种实现方式
    地址:https://blog.csdn.net/m0_57158496/article/details/128271700
    浏览阅读:9.9k
    点赞:5 收藏:30 评论:8
    (本篇笔记于2022-12-11 23:54:15首次发布,最后修改于2023-03-20 18:13:55)

  4. pandas 数据类型之 DataFrame
    地址:https://blog.csdn.net/m0_57158496/article/details/124525814
    浏览阅读:9.4k
    点赞:7 收藏:34 
    摘要:pandas 数据类型之 DataFrame_panda dataframe。
    (本篇笔记于2022-05-01 13:20:17首次发布,最后修改于2022-05-08 08:46:13)

  5. 个人信息提取(字符串)
    地址:https://blog.csdn.net/m0_57158496/article/details/124244618
    浏览阅读:7.7k
    摘要:个人信息提取(字符串)_python个人信息提取。
    (本篇笔记于2022-04-18 11:07:12首次发布,最后修改于2022-04-20 13:17:54)

  6. Python字符串居中显示
    地址:https://blog.csdn.net/m0_57158496/article/details/122163023
    浏览阅读:7.2k
    评论:1
  7. 罗马数字转换器|罗马数字生成器
    地址:https://blog.csdn.net/m0_57158496/article/details/122592047
    浏览阅读:7.2k
    (本篇笔记于2022-01-19 23:26:42首次发布,最后修改于2022-01-21 18:37:46)

  8. 斐波那契数列的递归实现和for实现
    地址:https://blog.csdn.net/m0_57158496/article/details/122355295
    浏览阅读:5.6k
    点赞:4 收藏:2 评论:8
  9. 回车符、换行符和回车换行符
    地址:https://blog.csdn.net/m0_57158496/article/details/123109488
    浏览阅读:5.5k
    点赞:2 收藏:3 
    摘要:回车符、换行符和回车换行符_命令行回车符。
    (本篇笔记于2022-02-24 13:10:02首次发布,最后修改于2022-02-25 20:07:40)

  10. python清屏
    地址:https://blog.csdn.net/m0_57158496/article/details/120762101
    浏览阅读:5.3k
  11. 练习:字符串统计(坑:f‘string‘报错)
    地址:https://blog.csdn.net/m0_57158496/article/details/121723096
    浏览阅读:5.1k
  12. 练习:尼姆游戏(聪明版/傻瓜式•人机对战)
    地址:https://blog.csdn.net/m0_57158496/article/details/121645399
    浏览阅读:5.1k
    点赞:14 收藏:44 
  13. 我的 Python.color() (Python 色彩打印控制)
    地址:https://blog.csdn.net/m0_57158496/article/details/123194259
    浏览阅读:4.6k
    点赞:2 收藏:8 
    摘要:我的 Python.color() (Python 色彩打印控制)_python color。
    (本篇笔记于2022-02-28 22:46:21首次发布,最后修改于2022-03-03 10:30:03)

  14. 练习:生成100个随机正整数
    地址:https://blog.csdn.net/m0_57158496/article/details/122558220
    浏览阅读:4.6k
    (本篇笔记于2022-01-18 13:31:36首次发布,最后修改于2022-01-20 07:58:12)

  15. 密码强度检测器
    地址:https://blog.csdn.net/m0_57158496/article/details/121739694
    浏览阅读:4.4k
    (本篇笔记于2021-12-06 09:08:25首次发布,最后修改于2022-11-27 09:39:39)

  16. 罗马数字转换器(用罗马数字构造元素的值取模实现)
    地址:https://blog.csdn.net/m0_57158496/article/details/122608526
    浏览阅读:4.2k
    (本篇笔记于2022-01-20 19:38:12首次发布,最后修改于2022-01-21 18:32:02)

  17. 练习:班里有人和我同生日难吗?(概率probability、蒙特卡洛随机模拟法)
    地址:https://blog.csdn.net/m0_57158496/article/details/124424935
    浏览阅读:4.0k
    摘要:班里有人和我同生日难吗?(概率probability、蒙特卡洛随机模拟法)_生日模拟问题,计算频率,并画出随着试验次数n的增大,频率和理论概率的 关系图。
    (本篇笔记于2022-04-26 12:46:25首次发布,最后修改于2022-04-27 21:22:07)

推荐条件 阅读量突破4.0k
(更多热博,请点击蓝色文字跳转翻阅)

  • 截屏图片
    在这里插入图片描述
      (此文涉及ChatPT,曾被csdn多次下架,前几日又因新发笔记被误杀而落马。躺“未过审”还不如回收站,回收站还不如永久不见。😪值此年底清扫,果断移除。留此截图,以识“曾经”。2023-12-31)



回页首


老齐漫画头像

精品文章:

  • 好文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费🆓下载。)
  • OPP三大特性:封装中的property
  • 通过内置对象理解python'
  • 正则表达式
  • python中“*”的作用
  • Python 完全自学手册
  • 海象运算符
  • Python中的 `!=`与`is not`不同
  • 学习编程的正确方法

来源:老齐教室


◆ Python 入门指南【Python 3.6.3】


好文力荐:

  • 全栈领域优质创作者——[寒佬](还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是编程学习的两大利器。
  • 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
  • 靠谱程序员的好习惯
  • 大佬帅地的优质好文“函数功能、结束条件、函数等价式”三大要素让您认清递归

CSDN实用技巧博文:

  • 8个好用到爆的Python实用技巧
  • python忽略警告
  • Python代码编写规范
  • Python的docstring规范(说明文档的规范写法)

这篇关于房贷计算器,妥妥的数学计算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/784678

相关文章

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

4、SpringMVC 实战小项目【加法计算器、用户登录、留言板、图书管理系统】

SpringMVC 实战小项目 3.1 加法计算器3.1.1 准备⼯作前端 3.1.2 约定前后端交互接⼝需求分析接⼝定义请求参数:响应数据: 3.1.3 服务器代码 3.2 ⽤⼾登录3.2.1 准备⼯作3.2.2 约定前后端交互接⼝3.2.3 实现服务器端代码 3.3 留⾔板实现服务器端代码 3.4 图书管理系统准备后端 3.1 加法计算器 需求: 输⼊两个整数, 点击"点

用php实现加减乘除计算器

用php实现加减乘除计算器。代码很简单哦! <?php header("content-type:text/html;charset=utf-8");session_start();?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/

java中的Math数学计算函数

java中的数学计算函数  Math类:   java.lang.Math类中包含基本的数字操作,如指数、对数、平方根和三角函数。   java.math是一个包,提供用于执行任意精度整数(BigInteger)算法和任意精度小数(BigDecimal)算法的类。     java.lang.Math类中包含E和PI两个静态常量,以及进行科学计算的类(static)方法,可以直接通

Python-正则表达式实现计算器功能

需求: 用户输入运算表达式,终端显示计算结果 源代码: 1 # !/usr/bin/env/ python3 2 # -*- coding: utf-8 -*- 3 4 """用户输入计算表达式,显示计算结果""" 5 6 __author__ = 'Jack' 7 8 import re 9 10 bracket = re.compile(r'\([^()

【STM32】矩阵计算器

【STM32】矩阵计算器 资料链接请在文章末尾获取~ 1.说明 使用元器件:stm32f103c8t6最小系统板x1,0.96寸OLED显示屏四角x1,4x4矩阵按键x1; 参考:正点原子有关4脚OLED驱动float型数据的驱动文件,CSDN有关矩阵横向扫描的原理文件。 功能:可以用1999的操作数完成+,-,x,/,%的运算。 问题:操作数与被操作数都只能是3位,并且不能更改,只能复位。

牛客周赛 E-茜茜的计算器

原题链接:E-茜茜的计算器​​​​​​ 题目大意:在计算器上显示的0~9十个数字,如果这个计算器有n个位置,可以显示n个数字,问能显示多少种不同的对称数字。只能横轴和竖轴对称。 思路:容斥,最终的答案是横轴对称的数量+纵轴对称的数量-都对称的数量。可以横轴对称的数字有0 1 8 3,这四个数字可以在n个位置随意放置,一定是对称的,那么横轴对称的数量就是。对于纵轴对称的数字,需要对n的奇偶性质进

CSDN编程大赛 coder的计算器

太不爽了啊。。。。几乎是学着敲了一遍 改了变量名  就是过不了。。我的天  各种小错误  简直疯了  唉。。。  能力还是太弱啊  刚把嗲    贴个AC的代码  学习用。。 coder的计算器 返回首页 发布公司: 有 效 期: CSDN 2014-04-01至2015-04-01 难 度 等 级: 答 题 时 长: 编程语言要求: 120分钟 C C++ J

CSU 文本计算器

文本计算器 Time Limit: 1 Sec   Memory Limit: 128 MB Submit: 37   Solved: 12 [ Submit][ Status][ Web Board] Description Bob讨厌复杂的数学运算.看到练习册上的算术题,Bob很是头痛.为了完成作业,Bob想要你帮忙写一个文本版的四则运算计算器.这个计算器的功能需

Dom案例——计算器,二级联动,表单验证(附完整代码)

Dom案例——计算器,二级联动,表单验证(附完整代码) 文章目录 Dom案例——计算器,二级联动,表单验证(附完整代码)一、计算器案例二、二级联动三、表单验证 一、计算器案例 1、实现计算器加法和乘法的功能 <!DOCTYPE html><html><head><meta charset="UTF-8"><title></title></head><body><input