我的首个Python程序:2021联邦个税计算器,求更简洁实现方案
2021美国联邦个人所得税计算器优化方案
核心优化思路
- 消除重复代码:将原代码重复写了两次的计税逻辑封装为独立函数,后续修改计税规则时仅需调整一处,降低维护成本
- 结构化税级配置:把分散在多个变量里的扣减阈值、对应税率统一存入列表,完全解耦配置和计算逻辑,后续更新税率只需要改配置项,不需要动计算代码
- 增加容错机制:原代码输入非数字会直接崩溃,新增输入校验和异常捕获,提升使用体验
- 补充退出逻辑:原无限循环无法正常退出,新增退出判定,输入q即可正常结束程序
- 优化输出格式:税金保留两位小数,更符合金额类数据的展示习惯
优化后参考代码
def calculate_federal_tax(income: int) -> float: # 2021年联邦个税税级配置:(收入阈值, 超出阈值部分对应附加税率) tax_brackets = [ (0, 0.1), (9950, 0.02), (40525, 0.1), (86376, 0.02), (164926, 0.08), (209426, 0.03), (523601, 0.02) ] total_tax = 0.0 for threshold, rate in tax_brackets: total_tax += max(income - threshold, 0) * rate return total_tax if __name__ == "__main__": print("请输入扣除所有支出后的年收入:") while True: input_str = input().strip() # 输入q/quit即可退出程序 if input_str.lower() in ["q", "quit"]: break # 输入合法性校验 try: annual_income = int(input_str) except ValueError: print("输入无效,请输入合法数字,或输入q退出:") continue tax = calculate_federal_tax(annual_income) print(f"你需要缴纳的联邦个税约为:${tax:.2f} 美元\n") print("尝试其他收入,或输入q退出:")
优化效果说明
- 代码量缩减近40%,逻辑更清晰,更易读
- 税率调整成本极低,要适配其他年份的个税规则,仅需修改
tax_brackets里的配置项即可 - 程序鲁棒性大幅提升,不会因为用户误输入直接闪退
- 支持正常退出,不需要强制结束进程
内容的提问来源于stack exchange,提问作者JJZ
相关产品推荐
相关产品推荐

