Python编程疑问:循环计算学费增长时数值未递增却重复
解决学费逐年递增的循环程序问题
嘿,刚接触编程就动手写作业啦,挺厉害的!我来帮你搞定这个学费增长的问题~
问题根源
你现在得到重复值的核心原因是:代码没有在循环过程中更新学费的数值,每次打印的都是初始的8000美元,自然看不出增长效果。
修正后的完整代码
tuition_increase = 0.03 tuition = 8000 years = 5 # 打印表头,用\t来对齐列 print('Year\tProjected Tuition') print('------------------------') # 循环遍历未来5年(从第1年到第5年) for year in range(1, years + 1): # 打印当前年份和对应的学费,格式化保留两位小数符合货币习惯 print(f'{year}\t${tuition:.2f}') # 关键步骤:更新学费,让它按照3%的增长率递增 tuition = tuition * (1 + tuition_increase)
代码解释
- 用
range(1, years + 1)生成1到5的年份数,确保循环正好执行5次,对应未来5年的学费计算。 - 每次循环先打印当前年份的学费,再更新学费数值——这一步千万不能搞反,不然会先打印增长后的学费,对应不上年份。
:.2f是格式化字符串的语法,用来把浮点数保留两位小数,让输出的学费看起来更规范。
可选:计算五年总学费
如果需要统计五年的总学费,可以加个累加变量,代码调整如下:
tuition_increase = 0.03 tuition = 8000 years = 5 total_tuition = 0 # 初始化总学费变量 print('Year\tProjected Tuition') print('------------------------') for year in range(1, years + 1): print(f'{year}\t${tuition:.2f}') total_tuition += tuition # 累加当前年份的学费 tuition = tuition * (1 + tuition_increase) # 打印总学费 print(f'\nTotal tuition over 5 years: ${total_tuition:.2f}')
内容的提问来源于stack exchange,提问作者Matthew Lapriore
相关产品推荐
相关产品推荐

