如何在Python中生成从初始薪资开始输出的正确薪资涨幅表格
Python薪资涨幅表格代码修复
问题根因
- 缺少起始薪资
starting的输入逻辑,直接运行会触发变量未定义的报错 - 循环内先执行涨薪计算再打印输出,导致首次输出的是已经涨过一次的薪资,也就是你遇到的从第2年薪资开始展示的问题
range(1, years)的遍历次数为years-1次,输出总年数少于用户输入的统计年数
修复后代码
# 新增起始薪资输入行 starting = float(input("请输入起始薪资:")) percent = float(input("请输入年度涨幅百分比:")) years = int(input("请输入统计年数:")) percent = percent / 100 print("%-7s%10s" % ("年份", "薪资")) # 先打印第1年的初始薪资 print("%2d%17.2f" % (1, starting)) # 从第2年开始逐年计算涨幅并输出 for i in range(2, years + 1): starting += starting * percent print("%2d%17.2f" % (i, starting))
逻辑说明
调整后代码会优先输出第1年的初始薪资,之后从第2年开始计算年度涨幅再输出,总输出年数和输入的统计年数完全匹配,符合需求。如果需要保留英文输入提示,替换input()内的中文文本即可。
内容的提问来源于stack exchange,提问作者Aces Radix
相关产品推荐
相关产品推荐

