Python编写复利计算器仅首年结果正确后续年份计算错误求助
复利计算器问题排查与修正
核心错误点
- 自定义的
bank函数计算结果未被后续逻辑使用,属于无效代码 - 年度金额计算逻辑存在根本缺陷:仅对初始本金计算复利,往年存入的额外存款未计入本金滚动计息,直接导致首年结果正确、后续年份全部偏差
- 缺少利率百分比转换逻辑:若用户输入百分比格式的利率(如输入3代表3%年利率),直接使用会导致利率数值放大100倍
- 变量名存在拼写错误:
intrest正确拼写应为interest,不影响运行但不符合规范
修正后代码
# 初始化参数 initial_balance = float(input("Enter current balance:")) extra_per_year = float(input("Amount added at end of year:")) years = int(input("How many years:")) # 输入为百分比利率,除以100转换为小数 annual_rate = float(input("Annual interest rate (in %):")) / 100 current_balance = initial_balance for year in range(1, years + 1): # 先计算当年利息 current_balance *= (1 + annual_rate) # 年底存入额外金额 current_balance += extra_per_year print(f"Year {year} Amount: {current_balance:.2f}")
逻辑说明
- 用变量保存每年滚动更新的当前总余额,往年的本金、利息、额外存款都会计入下一年的计息基数,符合复利计算规则
- 增加了利率百分比转换处理,符合常规输入习惯
- 新增输出年份标识和金额两位小数保留,可读性更强
内容的提问来源于stack exchange,提问作者Blue
相关产品推荐
相关产品推荐

