打卡记录
- 学号:1901090022
- 学习课程:Introduction to Computer Science and Programming in Python
- 学习内容:Problem Set 1 (PDF)
- 打卡天数:D03
Part A 作业要求(截取):
Part B: Saving, with a raise
Background
In Part A, we unrealistically assumed that your salary didn’t change. But you are an MIT graduate, and clearly you are going to be worth more to your company over time! So we are going to build on your solution to Part A by factoring in a raise every six months.
In ps1b.py, copy your solution to Part A (as we are going to reuse much of that machinery). Modify your program to include the following
- Have the user input a semi-annual salary raise semi_annual_raise (as a decimal percentage)
- After the 6 th month, increase your salary by that percentage. Do the same after the 12 th month, the 18 th month, and so on.
Write a program to calculate how many months it will take you save up enough money for a down payment. LIke before, assume that your investments earn a return of r = 0.04 (or 4%) and the required down payment percentage is 0.25 (or 25%). Have the user enter the following variables:
- The starting annual salary (annual_salary)
- The percentage of salary to be saved (portion_saved)
- The cost of your dream home (total_cost)
- The semiannual salary raise (semi_annual_raise)
作业心得
PartB的作业其实和PartA的整体思路差不多,主要是增加了一个变动收入,没6个月加薪
写一个程序用于计算 需要多少个月储蓄才够首付,大多数变量都需要float类型,所以需要将用户的输入转化为float,程序需要用户输入以下变量::
- 一开始的年薪 (annual_salary)
- 每月存款的比例 (portion_saved)
- 房子的价钱 (total_cost)
- 提薪的比率(semi_annual_raise)
整体的思路就是做一个循环,每个迭代就是一个月,判断当月 的存款是否大于等于首付。
存款由三部分组成:
- 已有存款
- 月薪按比例存款;月薪每6个月有涨幅(这里是重点,原文是after 6th month,也就是第7个月薪资变动才生效,而不是第6个月)
- 每月投资回报
程序代码
1 | # 起始年薪 |