1. 程式人生 > >【python 入門案例】hi finance python入門:餘額寶計算案例

【python 入門案例】hi finance python入門:餘額寶計算案例

一、計算餘額寶年化利率

抄寫強哥的代買,並根據自己的理解做修改

程式碼如下:

#simport math
from decimal import *
#import decimal

# 改進版roud函式,可以四捨五入保留小數,返回 字串
def new_round(x,n):
    return str(Decimal(str(x)).quantize(Decimal('0.'+'0'*n)))

# 初始值 因人而異哦
total_money = 1106.7  # 總金額
income_yestoday = 0.10  # 昨日收益

rate_day = income_yestoday / (total_money - income_yestoday)  # 日利率
total_money_one_year = total_money * (1 + rate_day) ** 365  # 一年後總金額 **代表次方
total_income = total_money_one_year - total_money  # 一年收益
rate_year = total_income / total_money  # 年化

print('餘額寶年化利率大概為:' + new_round((rate_year * 100),2) + '%')

輸出結果:餘額寶年化利率大概為:3.35%

二、課後作業

假設餘額寶日利率無變化,30天后轉出200元錢,然後不再操作餘額寶的情況下,再過30天,餘額寶的餘額會是多少?

接著上述程式碼增加如下程式碼:

# 假設餘額寶日利率無變化,30天后轉出200元錢,然後不再操作餘額寶的情況下,再過30天,餘額寶的餘額會是多少?---")
total_money_30day = total_money * (1+rate_day) ** 30 - 200  # 30天后取出200後總金額
total_money_60day = total_money_30day * (1+rate_day) ** 30  # 60天后總金額

print('餘額寶60天后餘額為:' + new_round(total_money_60day,2))

輸出結果:餘額寶60天后餘額為:912.17

三、變形改進

若想要使得輸出餘額不四捨五入,則將最後一行程式碼改為

print('餘額寶60天后餘額為:' + str(total_money_60day))

此時,輸出結果:餘額寶60天后餘額為:912.1736541751962 

在剛開始進行嘗試時,我將程式碼改為

print('餘額寶60天后餘額為:' + total_money_60day)

結果程式報錯,TypeError: must be str, not float,因為字串不能和非字串資料相連線,而total_money_60day變數此時賦值為浮點型資料,因此利用str()函式,將浮點型轉換為字串就解決了問題