理财计算器(年化收益率计算器)

01 函数的封装

首要我们知道复利的公式对吧, 复利即利滚利,单利呢便是每次利息拿本金记. 他们公式如下:

理财计算器(年化收益率计算器)

复利公式:F=P×(1+i)^n

单利公式:F=P+P*i*n

若把单利公式界说成一个函数,代码是这样↓, 又由于钱的单位是元, 所以回来的数额保存两位小数.

# 单利核算器,如期核算def danli_income(m,n,t): """ m 本金 n 收益率如5%收益率,则输入5 t 出资年限 如1年则输入1 """ m = float(m) n = float(n) / 100 t = int(t) return round(m +m*n*t, 2)

相同思路,复利公式函数代码如下:

# 复利核算收益 如期核算def fuli_income(m,n,t): """ m 本金 n 收益率如5%收益率,则输入5 t 出资年限 如3年则输入3 """ m=float(m) n=float(n)/100 t=int(t) return round(m*(1+n)**t,2)

由于定投也是一种常用的理财手法, 因而还想再封装一个定投的函数.

定投终究期末的利本算计公式是: M=a(1+x)[-1+(1+x)^n]/x

其间: M代表预期收益, a代表每期定投金额, x代表收益率, n代表定投期数。

封装函数如下:

# 定投核算公式,假如用需求输入参数def dingtou(a,x,n): """定投收益的核算公式为理财核算器:M=a(1+x)[-1+(1+x)^n]/x; 其间 M代表预期收益, a代表每期定投金额, x代表收益率, n代表定投期数。 假定用户每月定投金额为300元,一年也便是3600元,年收益率为15%, 定投期限为35年,则能够核算出收益为: 3600(1+15%)[-1+(1+15%)^35]/15%=3648044元 """ a=float(a) x = float(x) / 100 n = int(n) M = a*(1 + x)*(-1 + (1 + x) ** n) / x return round(M,2)

ok, 到这步就算写好首要的东西了下面来运转它们.

02 核算走起来

先说思路:

单利复利是一个比照, 看看不同的收益率及出资年限下, 究竟能差异出多少去,所以想做一个表格,这个表格格包含: 年限 复利收益 单利收益 差额 这四列(收益列指的是利本和);定投包含: 期数, 定投金额, 收益率, 本期末本钱算计, 本期末收益算计, 总倍数几列, 其间总倍数指的是终究的本金+收益是本金的多少倍;我不想像大部分核算器那样,只给一个终究成果,比方输入10年, 只给一个10年后的成果, 我想看到他们进程的改变,因而需求记载进程改变数据;假如能做出图画,那就更棒了;

★先封装单利VS复利比照的核算及展现函数, 进程顶用pandas封装了一个DataFrame表格.这个表格会在终究打印出来.

# 单利复利发动def danli_VS_fuli(): pd_col = pd.DataFrame(columns=('年限','复利收益','单利收益','差额')) m = input("请输入本金(单位元):") n = input('请输入收益率(收益率如5%收益率,则输入5):') t = input('请输入周期:') print(f'\n本金:{m}, 收益率:{n}%, 出资周期{t}\n') for i in range(1,int(t)+1): fuli = fuli_income(m, n, i) danli = danli_income(m, n, i) chae = round(fuli - danli, 2) # 参加数据 b = pd.Series({'年限':i,'复利收益':fuli,'单利收益':danli,'差额':chae}) pd_col = pd_col.append(b,ignore_index=True) # 修正索引列 fin=pd_col.set_index('年限') # 画图 plt.figure(figsize=(15, 8)) x = pd_col['年限'] y1 = pd_col['复利收益'] y2 = pd_col['单利收益'] plt.ylabel('金额') plt.xlabel('期数') plt.plot(x, y1,color='red', linewidth=1.0, linestyle='--') plt.plot(x, y2,color='green', linewidth=1.0, linestyle='-.') plt.legend(('复利收益曲线', '单利收益曲线')) plt.show() print(fin)

输出作用 ( 假定本金10万,收益率6%,利滚利存20年) :

这个事例我想的是假如有一个父亲给自己的孩子出世时分专门划拨一笔钱理财核算器,存起来理财核算器,到他成年给他。经核算时30W+

每年度数据改变

增加曲线

现在凭借这个核算器这儿看一下高利贷的恐惧,经百度一材料如下:

假定一位同学借了3000买东西, 30%周息, 借一个月4周和2个月8周会怎么样?

通过核算, 成果是: 3000元一个月后复利变为8568元,单利变为6600元 ; 若借了两个月后复利24471元, 单利10200元 ! 再往后不敢算了... ... 由于若是周复利情况下一年期52周后感觉都赶上一个小国的GDP了。。。。

★再封装定投的核算及展现, 进程中相同的用pandas封装了一个DataFrame表格.这个表格会在终究打印出来.

# 定投发动def show_DT(): a = input('输入定投金额(元):') x = input('输入收益率(如10%则输入10):') n = input('输入出资期数') print(f'定投金额:{a},每期收益率:{x},定投期数:{n}') pd_col = pd.DataFrame(columns=('期数', '定投金额', '收益率','本期末本钱算计', '本期末收益算计','总倍数')) for i in range(1,int(n)+1): # 定投核算 DT_M = dingtou(a, x, i) # 本金核算 benjin=round(float(a)*i,2) beishu=round((DT_M/benjin),2) # 参加数据 b = pd.Series({'期数': i, '定投金额': a, '收益率': str(x)+'%', '本期末本钱算计':benjin,'本期末收益算计': DT_M,'总倍数':beishu}) pd_col = pd_col.append(b, ignore_index=True) fin=pd_col.set_index('期数') # 画图 plt.figure(figsize=(15, 8)) x = pd_col['期数'] y1 = pd_col['本期末本钱算计'] y2 = pd_col['本期末收益算计'] plt.legend(["本期末本钱算计", "本期末收益算计"]) plt.ylabel('金额') plt.xlabel('期数') plt.plot(x, y1, color='blue', linewidth=1.0, linestyle='--') plt.plot(x, y2, color='red', linewidth=1.0, linestyle='-.') plt.xlim(1, int(n)) plt.legend(('本金曲线','期末收益算计曲线')) plt.show() print(fin)

运转输出作用

这个事例我是假定为养老存的, 每月1000,每年则存12000, 收益率为8% , 存30年理财核算器, 通过核算,30年存了本金36万,但30年期末是本金收益算计146.8万。

定投曲线,蓝色是本金砸入

在这个假定情况下, 定投30年的话, 本息算计是投入本金的4倍!

这个核算器更多的或许还需求自己去算着玩.

悉数代码获取途径: 增加SUMER, 回复: 理财核算器 获取.

发布于 2022-04-20 00:04:05
收藏
分享
海报
709
目录