编写一个计算个人所得税的程序,要求输入收入金额后,能够输出应缴的个人所得税。个人所得税征收办法如下图:起征点为5000元。
下面直接上代码:
########################
TAXBASE = 5000 #起证点
#分为7个阶段,每个阶段第一个值为个税起征点,第二个值为该阶段截止点,第三个值为税率
TaxTable = [(0, 3000, 0.03),
(3000, 12000, 0.10),
(12000, 25000, 0.20),
(25000, 35000, 0.25),
(35000, 55000, 0.30),
(55000, 80000, 0.35),
(80000, 1e10, 0.45)]
#计算税收
def CaculateTax(profit):
tax = 0.0
profit -= TAXBASE # 超过个税起征点的收入
i = 0
for i in range(len(TaxTable)):
# 判断profit是否在当前的缴税范围内
if (profit > TaxTable[i][0]):
if (profit > TaxTable[i][2]): # profit超过当前的缴税范围
tax += (TaxTable[i][1] - TaxTable[i][0]) * TaxTable[i][2]
else: # profit未超过当前的缴税范围
tax += (profit - TaxTable[i][0]) * TaxTable[i][2]
profit -= TaxTable[i][1]
if profit < 0:
profit = 0
print("征税范围:%6d~%6d 该范围内缴税金额:%6.2f 超出该范围的金额:%6d" % (TaxTable[i][0], TaxTable[i][1], tax, profit))
return tax
if __name__ == '__main__':
print("请输入个人收入金额: ", end='')
profit = int(input())
tax = CaculateTax(profit)
print("您的个人所得税为 %12.2f" % tax)
########################
执行结果如下:
请输入个人收入金额: 60001
征税范围: 0~ 3000 该范围内缴税金额: 90.00 超出该范围的金额: 52001
征税范围: 3000~ 12000 该范围内缴税金额:990.00 超出该范围的金额: 40001
征税范围: 12000~ 25000 该范围内缴税金额:3590.00 超出该范围的金额: 15001
您的个人所得税为 3590.00
________________END______________
网友评论