5. python练习题5-存款、收益率计算
【目录】
文章目录
【正文】
1. 目标任务
假设每月存100元到一个年利率为6%的储蓄账户。
即月利率=0.06/12=0.005。
第一个月后,账户的存款金额为:100*(1+0.005)=100.5
第二个月后,账户的存款金额为:(100+100.5)*(1+0.005)=201.5025
第三个月后,账户的存款金额为:(100+201.5025)*(1+0.005)=303.01001
请编写程序计算:
5个月后,该储蓄账户的存款金额是多少,要求保留5位小数。
计算总体收益相对总体本金的收益率(此收益率值:总收益/总本金),要求以百分数形式显示,保留2位小数。
2. 解题思路
每个月的账户存款金额以及收益率的计算方法题目已经说得很清楚了。
根据题目要求,我们需要设置一些相关的变量:
- total_deposit:账户存款总额 初始化为0
- wage:每个月打进去的金额=100
- monthly_rate:月利率=0.005
- month_num:总月份数量=5
- rate:收益率
总共求5个月后的数据,而每个月的计算模式都是一样的,因此必然需要一个循环迭代的过程。
最后的收益率计算,总体本金很简单,就是5个月打入的资金总额,也即100*5=500元。
而总体收益为每个月利息的总和,每一轮迭代,能求得每个月的利息。
由于每个月的利息是变动的
,因此,我们还需要提供一个变量来存储每个月的月利息数据
。
这个变量可以设置为一个浮点数
,在每轮迭代中自加该月利息;
也可以设置为一个列表
,在每轮迭代中把该月利息追加进去,最后把列表求和,即:
- income:每个月累计利息 初始化为0; 或:
income_list:存放每个月利息的列表 初始化为空列表[ ]
由于每个月的计算模式都是一样的,因此,我们可以使用循环结构(for循环或while循环),或者函数递归调用的方式来实现这个循环迭代的过程。
在使用函数递归调用方式情况下,还需要预先设置正在迭代第几次的变量i,即:
i
:正在迭代第几次 初始化为0
3. 知识回顾
3.1 Python赋值运算符
上图列出了python所有赋值运算符及其实例,
本例中我们将用到其中的加法赋值运算符:+=,
包括存款金额的自加、月份的自加,以及月利息的自加。
【代码示例】
sum = 0
sum = sum + 2
print(sum)
【终端输出】
2
【+=代码示例】
sum = 0
sum += 2
print(sum)
【终端输出】
2
sum = sum + 2
等同于 sum +=2
赋值运算符能使代码更简洁。
写法就是省略一个sum,并把赋值运算符(加减乘除等)移动等号的左边。
3.2 列表的append函数
列表的append( )函数的作用是向列表的末尾添加元素。
【语法】
列表名.append(要增加的元素)
【代码示例】
# 向列表的末尾添加元素
# 创建列表 name_list
name_list = ['张三', '李四']
# 用 append() 给列表 name_list 添加一个元素 '王五'
# 列表名.append(要增加的元素)
name_list.append('王五')
# 输出 name_list 列表
print(name_list)
【终端输出】
['张三', '李四', '王五']
3.3 round()函数—保留小数点位数
round函数用于设置保留小数点位数,并返回相应的四舍五入的值。
【语法】
round(要格式化的数,保留的小数位数)
保留的小数位数是可选参数,如果没有设置,则四舍五入取值,返回的是整数。
【代码示例】
# 保留3位小数
print(round(3.1415926, 3))
【终端输出】
3.142
3.4 f
格式化字符串
【代码示例】
# f格式化字符串
name = "安迪"
city = "云南"
school = "复旦大学"
print(f"大家好,我叫{
name},来自{
city},毕业于{
school}!")
【终端输出】
大家好,我叫安迪,来自云南,毕业于复旦大学!
【编写思路】
-
我们要输出的内容是:大家好,我叫安迪,来自云南,毕业于复旦大学!
-
把要格式化的内容用英文大括号加变量名{变量名}替换:
安迪替换为大括号加变量名{name}。
云南替换为大括号加变量名{city}。
复旦大学替换为大括号加变量名{school}。
格式化模板为:“大家好,我叫{name},来自{city},毕业于{school}!”
-
添加格式化符号f。
3.5 列表求和方法
【使用sum()函数】
list1 = [1, 2