原来使用Python是这样算出个人所得税的

自从2019年进行新的个人所得税改革后,现在每个月交个人所得税的都不一样,一般都是前面交得少,然后到后面逐渐增多,到最后一个月,不少高薪人士会很吃惊自己在12月扣的税居然这么多。与以前个人所得税相比:最大的改变是可以加上专项优惠(如教育专项扣除、60岁以上善老扣除等),其实比以前来说,还是可以减点税的。
我们先看看2019年给出来的个人所得税计算规则:
原来使用Python是这样算出个人所得税的
目前小林税前每个月固定工资:30000元,其中需要扣除2000元的保险(医保、社保等),家里有1个小孩读小学,需要和弟弟一起共同赡养两个60岁以上的父母(即专项需要扣2000元),每个月公积金需要交6000元,那么对于小林而言,每个月所需要交的个人所得税是怎样的?
期望通过python来实现。
python实现代码如下:
# 定义一个扣除保险、住房公积金、各项专项扣除后的自定义函数
def tax_salary_basic():
    # 定义一个变量salary_pre,用来存放税前薪资
    salary_pre = float(input('请输入你的税前薪资: '))
    # 定义一个变量insurance_amount,用来存放扣除保险金额
    insurance_amount = float(input('请输入你的保险扣除金额: '))
    # 定义一个变量housing_fund,用来存放需要扣除的住房公积金
    housing_fund = float(input('请输入你的住房公积金扣除金额: '))
    # 定义一个变量special_deduction_amount,用来存放需要扣除的专项金额,如教育金额
    special_deduction_amount = float(input('请输入你的专项扣除金额: '))

# 因为需要5000起才开始算税,所以需要扣除保险、住房公积金、专项金额后,还需要扣除一个5000,
# 得到算个人所得税的起点值
tax_salary_basic = salary_pre - insurance_amount - housing_fund - special_deduction_amount - 5000
# 返回征税部分的薪资
return tax_salary_basic

# 定义一个扣税的函数,需要输入征税部分的薪资
def personal_income_tax(tax_salary_basic):
    # 定义一个空数组,用来存放每个月的扣税金额
    tax_all = []
    # 循环12个月
    for i in range(1,13):
        # 假如每个月的工资不变,则需要算当年到扣税当月的累计收入
        tax_salary_year = tax_salary_basic * i
        # 假如当前累计超出需要计算税收的薪资介于0~36000元,需要交税3%
        if 0 < tax_salary_year <= 36000:
            tax_split = tax_salary_year * 0.03
        # 当前累计需要计算税收的薪资介于36000~144000元,则交税10%,同时扣除2520的速算扣除数
        elif 36000 < tax_salary_year <= 144000:
            tax_split = tax_salary_year *  0.10 - 2520
        # 其他依次类推
        elif 144000 < tax_salary_year <= 300000:
            tax_split = tax_salary_year * 0.20 - 16920
        elif 300000 < tax_salary_year <= 420000:
            tax_split = tax_salary_year * 0.25 - 31920
        elif 420000 < tax_salary_year <= 660000:
            tax_split = tax_salary_year * 0.30 - 52920
        elif 660000 < tax_salary_year <= 960000:
            tax_split = tax_salary_year * 0.35 - 85920
        elif tax_salary_year > 960000:
            tax_split = tax_salary_year * 0.45 - 181920
        else:
            tax_split = 0
        # 最后将每个月所需要交累计税添加到tax_all数组里面
        tax_all.append(tax_split)
    print('每个月累计的税为: ',tax_all)
    # 定义一个空数组,用来存放每个月所需要交的税
    personal_income_tax = []
    # 循环tax_all里面的数据长度
    for i in range(len(tax_all)):
        # 如果长度为0,则该月的税为tax_all里面第一个数据;否则,该月的个人所得税为当月累计税减去上月累计税
        if i == 0:
            tax_monthly = tax_all[0]
        else:
            tax_monthly = tax_all[i] - tax_all[i - 1]
        # 将各个月所需要交的个人所得税添加到personal_income_tax数组
        personal_income_tax.append(tax_monthly)
        # 返回各个月的所需要交的个人所得税
        print('Month %s: %s' % ((i + 1), tax_monthly))
    # 返回每个月个人所得税的列表
    return personal_income_tax
最终通过这两个函数,可以得到其每个月的个人所得税:
# 将tax_salary_basic()函数赋值给tax_salary_basic,得到需要计税部分的金额
tax_salary_basic = tax_salary_basic()
# 将personal_income_tax函数赋值给tax_yearly,得到各个月份所需要交的税
tax_yearly = personal_income_tax(tax_salary_basic)
需要输入的参数:
请输入你的税前薪资:30000 
请输入你的保险扣除金额: 3000 
请输入你的住房公积金扣除金额: 6000 
请输入你的专项扣除金额:2000
返回结果如下:
[420.0, 840.0, 1680.0, 3080.0, 4480.0, 5880.0, 7280.0, 8680.0, 10080.0, 11480.0, 13880.0, 16680.0] 
Month 1: 420.0 
Month 2: 420.0 
Month 3: 840.0 
Month 4: 1400.0 
Month 5: 1400.0 
Month 6: 1400.0 
Month 7: 1400.0 
Month 8: 1400.0 
Month 9: 1400.0 
Month 10: 1400.0 
Month 11: 2400.0 
Month 12: 2800.0
 
有兴趣的童鞋,就一起来试一试,让我们动起来。
THE END
分享
二维码
海报
原来使用Python是这样算出个人所得税的
自从2019年进行新的个人所得税改革后,现在每个月交个人所得税的都不一样,一般都是前面交得少,然后到后面逐渐增多,到最后一个月,不少高薪人士会很吃惊自……
<<上一篇
下一篇>>