【python 入門案例】hi finance python入門:餘額寶計算案例
阿新 • • 發佈:2019-01-29
一、計算餘額寶年化利率
抄寫強哥的代買,並根據自己的理解做修改
程式碼如下:
#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()函式,將浮點型轉換為字串就解決了問題