话说那天老大说:“我们XX公司成立了”,然后悲催的是要上税了!!!那要扣多少钱钱呢?更悲催俺是一个码农,所以,你懂的
class SalaryTax: def __init__(self, base, steps): self.base = base self.steps = steps self.stepTopSalary = [] def getTax(self, income, dutyfree): taxSalary = income - self.base - dutyfree i = 0 ladderTaxs = [] while (taxSalary > 0): ladder, rate = self.steps[i][0], self.steps[i][1] ladderTaxs.append(min(ladder, taxSalary) * rate) print str(min(ladder, taxSalary)) + " -> " + str(rate) + " " + str(ladderTaxs[-1]) taxSalary -= ladder i += 1 print "** " + str(ladderTaxs) return sum(ladderTaxs) def salaryAgainst(self, expect, dutyfree): preTax = expect taxSalary = expect - self.base - dutyfree i = 0 while (taxSalary > 0): ladder, rate = self.steps[i][0], self.steps[i][1] preTax += min(taxSalary - ladder, ladder) * rate taxSalary -= ladder i += 1 return preTax TaxBaseLine = [(1500,0.03), (4500, 0.1), (9000, 0.2), (35000,0.25), (55000, 0.3), (0x7ffffff, 0.45)] stax = SalaryTax(3500, TaxBaseLine) print stax.getTax(500, 0) print stax.getTax(5000000, 0) print stax.getTax(8500, 0) print stax.getTax(9500, 0) print stax.salaryAgainst(9500 - 495, 0)