任务描述
本关任务:编写一个能计算投资收益的程序。
某客户有本金 500000 元,有两个投资方案。 一是某银行大额存单,三年期的存款年利息是 每年4%, 该客户存款到期后将利息和本金再存入。 二是购买公寓出租,每月租金 1000 元,该客户每年年底将租金采取一年期定期存款的形式,年利率为 1.75% 计算30年中每三年该客户两种投资方案的投资收益。
相关课件和视频
相关知识
为了完成本关任务,你需要掌握:for循环语句
for循环
for i in range(初值,终值,步长):
<语句块>
i从初值变化到终值(不包含到终值),每次增加步长值,对于每个i值执行一次程序块
初值默认为0,步长值默认为1
例如,计算1到100的和s1
s1=0
for i in range (1,101):
s1=s1+i
print(s1)
例如,计算1到100的偶数和s2
s=0
for i in range (2,101,2):
s2=s2+i
print(s)
编程要求
根据提示,在右侧编辑器补充代码,计算投资收益。
测试说明
平台会对你编写的代码进行测试:
测试输入:
预期输出:
按如下格式显示30年的数据
提示:在format的格式符中可以使用整数指定表达式显示的宽度
print("{:3}次{:3}次{:3}次".format(1,10,100))
显示结果为 1次 10次100次
(1前面有2个空格10前面有1个空格)
梦想不会逃跑,会逃跑的只有自己。
开始你的任务吧,祝你成功!
答案
# 初始化变量
principal = 500000 # 本金
annual_interest_rate_cd = 0.04 # 大额存单年利率
monthly_rent = 1000 # 公寓每月租金
annual_interest_rate_rent = 0.0175 # 租金存款年利率
years = 30 # 总投资年数
# 大额存单投资收益计算
def calculate_cd_profit(principal, annual_interest_rate, years):
total_profit = 0
for _ in range(years // 3): # 每三年计算一次
profit = principal * annual_interest_rate * 3
total_profit += profit
principal += profit
return total_profit
# 公寓投资收益计算
def calculate_apartment_profit(monthly_rent, annual_interest_rate_rent, years):
total_profit = 0
rent_savings = 0
for year in range(1, years + 1):
annual_rent = monthly_rent * 12
rent_savings += annual_rent
if year >= 3 and year % 3 == 0: # 每三年计算一次收益
total_profit += rent_savings * (1 + annual_interest_rate_rent) ** (year - 3)
rent_savings = 0 # 重置租金储蓄
else:
rent_savings *= (1 + annual_interest_rate_rent) # 未满三年的租金收益继续产生利息
return total_profit
# 计算并输出结果
for i in range(1, years // 3 + 1):
year = i * 3
cd_profit = calculate_cd_profit(principal, annual_interest_rate_cd, year)
apartment_profit = calculate_apartment_profit(monthly_rent, annual_interest_rate_rent, year)
# 格式化输出,仅3、6、9等3的倍数年份在"第"和数字间保留空格
if year in [3, 6, 9]:
print(f"第 {year}年公寓方案{apartment_profit:10.2f}大额存单投资收益{cd_profit:10.2f}".replace(' ', '').replace('第', '第 '))
else:
print(f"第{year}年公寓方案{apartment_profit:10.2f}大额存单投资收益{cd_profit:10.2f}".replace(' ', ''))
509

被折叠的 条评论
为什么被折叠?



