目录
一.原理
利用python中的for循环或者while循环来计算利率或者解决复利问题。
其中涉及到不同场景下的不同利率问题,利用不同的公式与方法解决。
二.实际问题举例
1.问题描述:小A的爸爸有5万元积蓄存入银行,考虑到在存续期间可能会有其他用途,因此他选择了1年定期,自动转存的方式。5年后他会有多少收益呢?假设5年内存款利率没有变化,均为3.25%,5年后到期存款总额是多少?
代码:
money=50000#本金
rate=0.0325#利率
for i in range(5):
money=money*(rate+1)
print("五年以后的存款为",money,"元")
通过python中的for循环可以总结出一套存款的代码(利率计算器):
money=float(input("请输入本金:"))#本金
rate=float(input("请输入利率:"))#利率
year=int(input("请输入存款年数:"))
for i in range(year):
money=money*(rate+1)
print(year,"年以后的存款为",money,"元")
输出效果:
多利率问题
2.问题描述:小A的爸爸有5万元积蓄存入银行,考虑到在存续期间可能会有其他用途,因此他选择了1年定期,自动转存的方式。假设5年内存款利率分别为3.25%,3%,3.85%,2.8%,3%,5年后到期存款总额是多少?
方法一代码:
money=50000#本金
rate=[0.0325,0.03,0.0385,0.028,0.03]#利率
for i in rate:
money=money*(i+1)
print("5年以后存款总额:",money,"元")
输出效果:
方法二代码:
money=50000#本金
rate=[0.0325,0.03,0.0385,0.028,0.03]#利率
for i in range(5):
money=money*(rate[i]+1)
print("5年以后存款总额:",money,"元")
存款与本金翻倍
3.问题描述:小A的爸爸有5万元积蓄存入银行,考虑到在存续期间可能会有其他用途,因此他选择了1年定期,自动转存的方式。如果小A的爸爸一直没有把钱取出来,假设存款利率没有变化,均为3.25%,多少年后,存款会翻倍?
代码:
money=50000#本金
rate=0.0325#年利率
year=0
while money<50000*2:
money=money*(1+rate)
year+=1
print("第",year,"年翻倍,总存款为:",round(money,2),"元")
故我们可以总结出一套翻倍(赚回本金)的代码:
money=money1=float(input("请输入本金"))
rate=float(input("请输入年利率"))
year=0
while money<money1*2:
money=money*(1+rate)
year+=1
print("第",year,"年翻倍,总存款为:",round(money,2),"元")
输出效果:
存款与定期取款
4.问题描述:小A的爸爸购买了10万元一年期收益率3.7%的银行保证收益型理财产品。每年理财赎回后,他会提取2万元用作生活所需,余下资金仍购买此种理财。在收益率不变的情况下,多少年后资金被全部取出,并显示最后一次小A爸爸能拿到多少钱?(定存定取)
代码:
money=100000
rate=0.037
year=0
while money>=0:#保证还有钱在吃利息
money=money*(1+rate)-20000
year=year+1
print(year,"年后资金被全部取出")
money=money+20000
print("第",year,"年拿到:",round(money,2),"元")
故我们同样也可以推出一个关于定期取出的代码:
money=float(input("请输入本金:"))
rate=float(input("请输入年利率:"))
m=float(input("请输入定期取出金额(每年):"))
year=0
while money>=0:#保证还有钱在吃利息
money=money*(1+rate)-m
year=year+1
print(year,"年后资金被全部取出")
money=money+m
print("第",year,"年拿到:",round(money,2),"元")
存款与通货膨胀
5.问题描述:小A的爸爸有5万元积蓄存入银行,考虑到在存续期间可能会有其他用途,因此他选择了1年定期,自动转存的方式。假设5年内存款利率没有变化,均为3.25%,假设五年内通货膨胀率均为2.5%,那么五年后所有储蓄总是否购买力高于原购买力?高于或者低于多少?(通货膨胀)
eg:如果通胀率为5%,一种商品今年卖100元 ,则次年卖105元。
第二年的价格和第一年价格的关系是:
当年价格 = 次年价格 / 1.05
所持金额不变时,价格为购买力的倒数,推导得到如下公式:
次年购买力 = 当年购买力 / 1+通货膨胀率
主题思路:
1.先计算第一年本金与利率的总和
2.计算第一年总和贬值后的购买力
3.以上循环进行5次,最后输出结果
代码实现:
money=money1=50000#本金
rate=0.0325#利率
m=0.025#通货膨胀率
for i in range(5):
money=money*(rate+1)
money=money/(1+m)
if money>money1:
print("现购买力高于原购买力")
money=money-money1
print("差值约为",round(money,2),"元")#保留两位小数
elif money<money1:
print("原购买力高于现购买力")
money=money1-money
print("差值约为",round(money,2),'元')
else:
print("原购买力等于现购买力")
输出效果: