iT邦幫忙

2022 iThome 鐵人賽

DAY 23
0

前情提要:

經過一連串~ brain storming, debug, paper studying, writing articles, positive of covid... hahaha jk lmao /images/emoticon/emoticon37.gif/images/emoticon/emoticon39.gif

However, I realised that my health is the piority! As a life where you have the energy to focus on everything else you want and dream of.
So, let's have a break for coding some simple python games.

Those games are my first side project, which also my self-study of Python before I start the AI and Big Data program. I learned it from the "小象學堂" which is a wechat account (kinda like wechat python learning robot ?!) that I have given from my brother. (p.s. My siblings were engineer before I be an AI RD/PM... but I'm the only one, who still alive in this field/images/emoticon/emoticon02.gif ... well life is hard... it's another story~ haha LOL, let come back to the article /images/emoticon/emoticon33.gif)

https://ithelp.ithome.com.tw/upload/images/20221002/201516814XcqofwfF8.png

52週存錢法介紹:

52週存錢法 = 階梯式存錢法

「52週存錢法」 這個遊戲很簡單,其實就是採取階梯式遞增的方式,每個星期挑戰自己要比上一週多存一點,你可以從每週10元的入門版開始挑戰,52週後就可以存到將近1萬3780元。很巧的是,這52週存下的1萬3780元,剛好跟許多理財入門書所舉的存錢目標接近:每年投入1萬4000元本金,在年報酬率20% 的複利情況下,40年後,你的存款將超過1億元!

當然這裡面有過於理論的假設,光年報酬20% 就不易做不到,更何況是連續40 年。不過,這個假設還是提醒我們一個基本觀念:平時要累積小錢,經過複利變大錢。只要把每年多存下來的1萬3780元,透過定期投資的方式,轉進幾檔穩定的績優股票,那麼時間一久,不管是領取的股息或是資本利得,都是一筆可觀的獲利。用比較容易達成的10%報酬率來算,40年下來能存到約670萬元,這些錢不管是補貼退休金,還是出國玩,都不成問題!

階梯式的存錢法已經流行蠻多年了,第一週存50元,第二週存100元,第三週存150元…..(每週比上週多存$50元)第52週過後就可以存下 68,900元,出國玩一趟的旅費就存出來了。若或者, 你每週都能比上一週多存100元,一年下來,更能多存13萬7800元。

這筆錢可以支付1~2趟長程旅行,也能帶著全家出國去度假,或是當作投資股票、基金的本錢,開始用錢滾錢的人生。

52週存錢法的優點:

1. 幫你設下儲蓄習慣

2. 把存錢目標由大化小

3. 茁壯你的理財成就感

參考文獻出處

https://ithelp.ithome.com.tw/upload/images/20221002/20151681eJSnlglJWX.jpg

"52週存錢法"-實作:

1. 基礎篇:

A. 執行程式前, 所需修改的程式參數如下:
money_per_week = 10 -----------每週你想要存入的金額
increase_money = 10------------每週你想遞增的金額
saving = 0 --------------------帳戶開始累積的金額

B. 若你覺得存一年52週太久了~ 也可以改 total_week = 52 改成你想存錢的週數

def main():
    """
    主函數
    """
    money_per_week = 10     #每週的存入金額
    i = 1                   #記錄週數
    increase_money = 10     #遞增的金額
    total_week = 52         #總共的週數
    saving = 0              #帳戶累積

    while i <= total_week:
        #存錢操作
        #saving = saving + money_per_week
        saving += money_per_week

        #輸出信息
        print('第{}周, 存入{}元, 帳戶累計{}元'.format(i, money_per_week, saving))

        #更新下一周的存錢金額
        money_per_week += increase_money
        i += 1

if __name__ == '__main__':
    main()

1. 結果如下圖:

https://ithelp.ithome.com.tw/upload/images/20221002/20151681KB9cKkLRtv.png

2. 在終端機輸入數值, 計算每週的存錢挑戰:

使用者須數入以下:

  1. 請輸入每週的存入金額:
  2. 請輸入遞增的金額:
  3. 請輸入總共的週數:

程式算出結果:
4. 輸出 "總存款金額"

程式碼如下:

import math
def main():
    """
    主函數
    """
    money_per_week = 10     #每週的存入金額
    i = 1                   #記錄週數
    increase_money = 10     #遞增的金額
    total_week = 52         #總共的週數
    saving = 0              #帳戶累積
    money_list = []         #記錄每週存款數的列表

    while i <= total_week:
        # #存錢操作
        # #saving = saving + money_per_week
        # saving += money_per_week

        money_list.append(money_per_week)
        saving = math.fsum(money_list)

        #輸出信息
        print('第{}周, 存入{}元, 帳戶累計{}元'.format(i, money_per_week, saving))

        #更新下一周的存錢金額
        money_per_week += increase_money
        i += 1

if __name__ == '__main__':
    main()

結果如下:

https://ithelp.ithome.com.tw/upload/images/20221002/20151681wvYmqa3hTz.png

3. :

使用者須數入以下:

  1. 請輸入每週的存入金額:
  2. 請輸入遞增的金額:
  3. 請輸入總共的週數:
  4. 請輸入日期(yyyy/mm/dd):

程式算出結果:
5. 輸出 "第你想存週數週的存款:"

import math
from datetime import datetime

def save_money_in_n_weeks(money_per_week, increase_money, total_week):
    """
    計算n周內的存款金額
    """
    money_list = []             #記錄每周存款數的列表
    saved_money_list = []       #記錄每週帳戶累計
    for i in range(total_week):       #don't have to add i + = 1
        money_list.append(money_per_week)
        saving = math.fsum(money_list)
        saved_money_list.append(saving)
        #輸出信息
        #print('第{}周, 存入{}元, 帳戶累計{}元'.format(i + 1, money_per_week, saving))

        #更新下一周的存錢金額
        money_per_week += increase_money

    return saved_money_list

def main():
    """
    主函數
    """
    money_per_week = float(input('請輸入每週的存入金額:'))   #每週的存入金額
    increase_money = float(input('請輸入遞增的金額:'))      #遞增的金額
    total_week = int(input('請輸入總共的週數:'))            #總共的週數

    #調用函數
    saved_money_list = save_money_in_n_weeks(money_per_week, increase_money, total_week)
    input_date_str = input('請輸入日期(yyyy/mm/dd):')
    input_date = datetime.strptime(input_date_str, '%Y/%m/%d')
    week_num = input_date.isocalendar()[1]
    print('第{}週的存款:{}元'.format(week_num, saved_money_list[week_num -1]))

if __name__ == '__main__':
    main()

3. 結果如下圖:

https://ithelp.ithome.com.tw/upload/images/20221002/20151681th8xIoTIUn.png

/images/emoticon/emoticon42.gif


上一篇
Python 速算器: 基礎代謝率 (BMR)計算
下一篇
Python 速算器: 輸入日期, 判斷是這一年的第幾天?
系列文
轉職AI軟體工程師的自我學習分享筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言