【Python123】 存款买房(B)

类型:流程控制

目录

题目描述‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

答案:


题目描述‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

你刚刚大学毕业,在北京找到了一份很好的工作,决定开始存钱买房。由于北京的房价很高,你要攒几年钱才能付得起房子的首付。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

现根据以下假定来计算你需要多长时间才能攒够首付款:‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

1.将你想购买的房子的总价称为total_cost。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

2.将首付款占总房价的比例称为portion_down_payment。为简单起见,假设portion_down_payment = 0.30(30%)。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

3.将存款金额称为current_savings。你的存款从0元开始。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

4.假设你的年薪是annual_salary,按12个月平均发放,单位是元。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

5.假设你每个月都要拿出一定百分比的工资来存首付。称为portion_saved,此值为一个表示百分比的整数,例如50表示50%。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

6.假定你每6个月加一次工资,每半年加薪比例semi_annual_raise是一个表示百分比的整数,例如7表示7%,即第7个月的月初涨一次工资,工资涨幅为7%,以后每过6个月再涨一次工资。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

写一个程序来计算你需要多少个月才能攒够钱付定金,不足一个月按一个月计算。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

要求使用下面的输入输出代码,填充完整并通过测试用例。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

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

portion_down_payment = 0.3      # 首付比例,浮点数

# 根据首付款比例计算首付款down_payment
#=======================================================
# 补充你的代码
#=======================================================
print('首付',down_payment)

current_savings = 0                                # 存款金额,从0开始
number_of_months = 0
monthly_salary = annual_salary/12        #月工资
monthly_deposit = monthly_salary * portion_saved               # 月存款

# 计算多少个月才能存够首付款,结果为整数,不足1月按1个月计算,即向上取整
#每6个月涨一次工资,每年输出年底的存款总额
#=======================================================
# 补充你的代码
    if number_of_months % 12 == 0:
        print("第{}个月月末有{:,.0f}元存款".format(number_of_months, current_savings)) #每12个月输出一次存款,保留0位小数,使用千分符
#=======================================================
print(f'需要{number_of_months}个月可以存够首付')

输入格式:‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

输入为四行,每行一个浮点数,分别表示房价、年薪、月存储工资百分数、半年工资涨幅百分数。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

输出格式:‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

输出为若干行,第一行为首付款,最后一行为存够首付的月数n,中间行是每年年底已存工资款总数(取整)。具体格式见示例。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

示例 1‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

输入:
5000000
240000
70
8

输出:	
首付 1500000.0
第12个月月末有174,720元存款
第24个月月末有378,513元存款
第36个月月末有616,218元存款
第48个月月末有893,477元存款
第60个月月末有1,216,871元存款
需要70个月可以存够首付

答案:

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


# 首付比例,浮点数

# 根据首付款比例计算首付款down_payment
# =======================================================
def down_payment():
    down_payment = total_cost * portion_down_payment
    return down_payment


# =======================================================
down_payment = down_payment()
print('首付', down_payment)

current_savings = 0
# 存款金额,从0开始
number_of_months = 1

monthly_salary = annual_salary / 12
# 月工资
monthly_deposit = monthly_salary * portion_saved  # 月存款


# 总共缴纳房款

# 计算多少个月才能存够首付款,结果为整数,不足1月按1个月计算,即向上取整
# 每6个月涨一次工资,每年输出年底的存款总额
# =======================================================
def print_current(number_of_months, monthly_salary, semi_annual_raise, monthly_deposit ):
    enough = True
    current_saving = 0
    while enough:
        current_saving = current_saving + monthly_deposit  # 发工资了,先给自己存一笔
        if current_saving >= down_payment:  # 存够了买房去
            print(f'需要{number_of_months}个月可以存够首付')
            enough = False
            return
        if number_of_months % 12 == 0:
            print("第{}个月月末有{:,.0f}元存款".format(number_of_months, current_saving))  # 每12个月输出一次存款,保留0位小数,使用千分符
        if number_of_months % 6 == 0:
            monthly_deposit = monthly_deposit * (1 + semi_annual_raise)  # 六月之期已到,加薪
        number_of_months = number_of_months + 1


# =======================================================
print_current(number_of_months, monthly_salary, semi_annual_raise, monthly_deposit)


‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬说明:此题目来自【Python123】,答案为自己创作,不产生任何商业利益,如有侵权,请联系删除。Python123 - 编程更简单Python123 是面向新工科教学需求的计算机类基础课程教学辅助平台。支持全国计算机二级 python 考试自学与备考,还向合作教师与高校提供精品教学资源、全系列课程内容、全流程教学工具,支撑课程教学管理、练习、考试、教学研究等实际需求,为国家级、省部级一流课程提供教学研究数据支撑。https://python123.io/


你可能感兴趣的:(【Python123】,python)