m0_74071310 2022-10-26 17:29 采纳率: 53.8%
浏览 1004
已结题

python存款买房1问题解答

假设你每个月都是月初发工资,同时会收到上一个月的存款利息。假设所需的首付款百分比为0.30(30%),
存款年利率interest_rate 为2.25%,每半6 个月加一次薪水,修改你的程序,计算存够首付需要多少个月。
你的程序要给出以下提示并要求用户输入相应的数值:

  1. 请输入总房价:total_cost
  2. 请输入年薪:annual_salary
  3. 请输入月存款比例:portion_saved
  4. 每半年加薪比例:semi_annual_raise
  5. 请输入存款年利率:
    测试用例:
    请输入总房价:1000000
    请输入年薪:156800
    请输入月存款比例:60
    请输入加薪比例:7

total_cost = float(input()) total_cost为当前房价
annual_salary = float(input()) 年薪
portion_saved = float(input()) / 100 月存款比例,输入30转为30%
semi_annual_raise = float(input()) /100 输入每半年加薪比例,输入7转化为7%

portion_down_payment = 0.3 # 首付比例,浮点数
down_payment = portion_down_payment * total_cost # 首付款
print('首付',down_payment)

current_savings = 0
number_of_months = 0

补充你的代码
month_salary=annual_salary / 12
month_portion=month_salary * portion_saved
计算多少个月才能存够首付款,结果为整数,不足1月按1个月计算,即向上取整
while True:
current_savings=current_savings+month_portion
number_of_months+=1
current_savings=current_savings*(1+0.025/12)
if number_of_months % 6==0:
month_portion=month_portion*(1+semi_annual_raise)
if number_of_months % 12==0:
print(f'第{number_of_months}个月月末有{int(current_savings):,}元存款')
if current_savings>=down_payment:
print(f'需要{number_of_months}个月可以存够首付')
break
请各位学长学姐 为我这个计算有点问题

img


计算结果应该是这样

  • 写回答

1条回答 默认 最新

  • 往事随风云渐起 2022-10-26 17:51
    关注
    
    total_cost = float(input("请输入总房价: "))  # total_cost为当前房价
    annual_salary = float(input("请输入年薪: "))  # 年薪
    portion_saved = float(input("请输入月存款比例: ")) / 100  # 月存款比例,输入30转为30%
    semi_annual_rise = float(input("请输入加薪比例")) / 100  # 输入每半年加薪比例,输入7转化为7%
    
    portion_down_payment = 0.3  # 首付比例,浮点数
    down_payment = portion_down_payment * total_cost  # 首付款
    print('首付', down_payment)
    month_salary = annual_salary / 12
    current_saving = 0  # 存款金额,从0开始
    number_of_months = 0
    
    rate = 0.0225 / 12
    month = 0
    while current_saving < down_payment:
        month += 1
        # current_saving = current_saving * (1 + rate) + month_salary * portion_saved
        if month % 6 == 0:
            month_salary = month_salary * (1 + semi_annual_rise)
        current_saving = current_saving * (1 + rate) + month_salary * portion_saved  # 计算加薪后的工资要放在这里
        if month % 12 == 0:
            print("第{}个月月末有{:,.0f}元存款".format(month, current_saving))
    print("需要{}个月可以存够首付".format(month))
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月3日
  • 已采纳回答 10月26日
  • 创建了问题 10月26日

悬赏问题

  • ¥30 频率分析法分析绘制奈奎斯特图、波特图
  • ¥15 弹出来一万个系统找不到指定的文件框框,怎么解决
  • ¥15 ADS生成的微带线为什么是蓝色空心的
  • ¥15 求一下解题思路,完全不懂
  • ¥15 tensorflow
  • ¥15 densenet网络结构中,特征以cat方式复用后是怎么进行误差回传的
  • ¥15 STM32G471芯片spi设置了8位,总是发送16位
  • ¥15 R语言并行计算beta-NTI中tree文件的类型
  • ¥15 如何解读marsbar导出的ROI数据?
  • ¥20 求友友协助弄一下基于STC89C52单片机的声光控制灯原理图