1 #-*- coding: utf-8 -*-
2
3 from collections importOrderedDict4
5 #税率表, 2018.10新个税
6 tax_ratio =OrderedDict()7 tax_ratio[(0, 5000)] =08 tax_ratio[(5000, 3000)] = 0.03
9 tax_ratio[(3000, 12000)] = 0.1
10 tax_ratio[(12000, 25000)] = 0.2
11 tax_ratio[(25000, 35000)] = 0.25
12 tax_ratio[(35000, 55000)] = 0.3
13 tax_ratio[(55000, 80000)] = 0.35
14 tax_ratio[(80000, float('inf'))] = 0.45
15
16
17 #计算税
18 def tax(income, social_benefits=0):19 income -=social_benefits20 total_tax =021 for k, v intax_ratio.items():22 if income > k[1]:23 income -= k[1]24 total_tax += k[1] *v25 elif k[0] < income < k[1]:26 total_tax += income *v27 break
28 returntotal_tax29
30
31 if __name__ == '__main__':32 print(tax(12705))33 print(tax(15000, 2295))34 print(tax(income=15000, social_benefits=2295))35 print(tax(social_benefits=2295, income=15000))