原来使用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)
THE END
0
二维码
海报
原来使用Python是这样算出个人所得税的
自从2019年进行新的个人所得税改革后,现在每个月交个人所得税的都不一样,一般都是前面交得少,然后到后面逐渐增多,到最后一个月,不少高薪人士会很吃惊自……