MIT OCW 6.0001 課程 Problem Set 1 作業(yè)(Part A)

MIT OCW 6.0001 課程 Problem Set 1 作業(yè)(Part A)

打卡記錄

打卡時間:2019.07.25

打卡天數:D02

學習內容:MIT OCW 6.0001 課程 Problem Set 1 作業(yè)(Part A)

參考鏈接

課程視頻

作業(yè)鏈接

Part A 作業(yè):

Part A: House Hunting

You have graduated from MIT and now have a great job! You move to the San Francisco Bay Area and decide that you want to start saving to buy a house. As housing prices are very high in the Bay Area, you realize you are going to have to save for several years before you can afford to make the down payment on a house. In Part A, we are going to determine how long it will take you to save enough money to make the down payment given the following assumptions:

  1. Call the cost of your dream home total_cost.

  2. Call the portion of the cost needed for a down payment portion_down_payment. For simplicity, assume that portion_down_payment = 0.25 (25%).

  3. Call the amount that you have saved thus far current_savings. You start with a current savings of $0.

  4. Assume that you invest your current savings wisely, with an annual return of r (in other words, at the end of each month, you receive an additional current_savings*r/12 funds to put into your savings – the 12 is because r is an annual rate). Assume that your investments earn a return of r = 0.04 (4%).

  5. Assume your annual salary is annual_salary.

  6. Assume you are going to dedicate a certain amount of your salary each month to saving for the down payment. Call that portion_saved. This variable should be in decimal form (i.e. 0.1 for 10%).

  7. At the end of each month, your savings will be increased by the return on your investment, plus a percentage of your monthly salary (annual salary / 12).

Write a program to calculate how many months it will take you to save up enough money for a down payment. You will want your main variables to be floats, so you should cast user inputs to floats.

Your program should ask the user to enter the following variables:

  1. The starting annual salary (annual_salary)
  2. The portion of salary to be saved (portion_saved)
  3. The cost of your dream home (total_cost)

作業(yè)心得

光看懂英文作業(yè)已經蠻吃力了,哈哈,簡化作業(yè)說明如下:

  1. 買房子的總費用為 total_cost
  2. 首付(down payment)為25%, portion_down_payment = 0.25
  3. 存款為 current_savings,從0開始
  4. 存款有投資,年回報率(an annual return)為r(0.04),所以每月額外收入為 current_savings*r/12
  5. 年薪為 annual_salary
  6. 從每月薪資中,固定比例用于首付,這個比率設為 portion_saved
  7. 每個月的收入來源,主要是 投資回報 + 每月工資 monthly salary(annual salary / 12)

寫一個程序用于計算 需要多少個月儲蓄才夠首付,大多數變量都需要float類型,所以需要將用戶的輸入轉化為float,程序需要用戶輸入以下變量::

  1. 一開始的年薪 (annual_salary)
  2. 每月存款的比例 (portion_saved)
  3. 房子的價錢 (total_cost)

整體的思路就是做一個循環(huán),每個迭代就是一個月,判斷當月 的存款是否大于等于首付。

存款由三部分組成:

  1. 已有存款
  2. 月薪按比例存款
  3. 每月投資回報

程序代碼

# 起始年薪 
# annual_salary = 120000 
annual_salary = float(input("Enter your annual salary:")) 

# 每月薪資存款比例 
# portion_saved = .10 
portion_saved = float(input("Enter the percent of your salary to save, as a decimal:")) 

# 房價 
# total_cost = 1000000 

total_cost = float(input("Enter the cost of your dream home:")) 

# 首付比例 
portion_down_payment = 0.25 

# 存款年化率 
r = 0.04 

# 當前存款 
current_savings = 0 
month_count = 1 
# 首付 
down_payment = total_cost * portion_down_payment 

while True: 
    # 計算當月存款 = 存款 + 月薪*每月薪資存款比例 + 投資回報 
    current_savings = current_savings + annual_salary/12*portion_saved +     current_savings*r/12 
    if current_savings >= down_payment: 
        print("Number of months: {}".format(month_count)) 
        break 
    # 月份自增 
    month_count += 1 
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容