Python—完美计算个税和税后收入(求职重要参考神器)
求职的时候,经常被问到期望薪资如何,收到多个offer,也要进行薪资和福利的对比,尤其是税后收入和公积金。可是自从个税改革后,个税计算变得非常繁琐,也没有发现很好的网页,于是自己写了一个python脚本,感觉还不错,充分考虑了每个月的个税,税后收入,以及公积金和医保入账情况。
尤其是如果两个offer税前看似接近,但是社保和公积金基数,公积金比例差别不小,那么对实际税后收益影响就很大,这就是抉择的重要依据,也是往往很难算得清。依我看,税后收入+公积金是最重要的标准,另外医保个人账户收入,也不可忽视。其他的,比如餐补车补旅游啊等等福利,这里就照顾不到了,可以算进月薪里面算。
#第n月的税后收入,公积金收入,医保收入等
def total_benf(n,salary,shebao,yibao,gongjijin,gjj_rate,append): #参数为第N月,月薪,社保基数,医保基数,公积金基数,公积金比例,附加扣除after_tax=salary-shebao*0.08-yibao*0.02-gongjijin*gjj_rate-11-gettax(n,salary,shebao,yibao,gongjijin,gjj_rate,append)return after_tax,gongjijin*gjj_rate*2,yibao*0.05,shebao*0.08#年终奖个税
def getbonustax(bonus):tax_income=bonusif(tax_income<36000):rate=0.03sukou=0elif(tax_income>=36000 and tax_income<144000):rate=0.1sukou=2520elif(tax_income>=144000 and tax_income<300000):rate=0.2sukou=16920elif(tax_income>=300000 and tax_income<420000):rate=0.25sukou=31920elif(tax_income>=420000 and tax_income<660000):rate=0.3sukou=52920elif(tax_income>=660000 and tax_income<960000):rate=0.35sukou=85920else:rate=0.45sukou=181920return tax_income*rate-sukou#第n月的个税 参数为第N月,月薪,社保基数,医保基数,公积金基数,公积金比例,附加扣除
def gettax(n,salary,shebao,yibao,gongjijin,gjj_rate,append):if(n==1): #第一个月的算法tax_income=salary-shebao*0.08-yibao*0.02-gongjijin*gjj_rate-11-5000-appendif(tax_income<=0):rate=0sukou=0elif(tax_income<36000):rate=0.03sukou=0elif(tax_income>=36000 and tax_income<144000):rate=0.1sukou=2520elif(tax_income>=144000 and tax_income<300000):rate=0.2sukou=16920elif(tax_income>=300000 and tax_income<420000):rate=0.25sukou=31920elif(tax_income>=420000 and tax_income<660000):rate=0.3sukou=52920elif(tax_income>=660000 and tax_income<960000):rate=0.35sukou=85920else:rate=0.45sukou=181920return tax_income*rate-sukouelse: #各月累计的算法tax_income=salary-shebao*(0.08+0.02)-gongjijin*0.05-11-5000-append #5000就是免征额tax_income=tax_income*n #前n月总收入if(tax_income<=0):rate=0sukou=0elif(tax_income<36000):rate=0.03sukou=0elif(tax_income>=36000 and tax_income<144000):rate=0.1sukou=2520elif(tax_income>=144000 and tax_income<300000):rate=0.2sukou=16920elif(tax_income>=300000 and tax_income<420000):rate=0.25sukou=31920elif(tax_income>=420000 and tax_income<660000):rate=0.3sukou=52920elif(tax_income>=660000 and tax_income<960000):rate=0.35sukou=85920else:rate=0.45sukou=181920res=tax_income*rate-sukoufor i in range(1,n): #还要减去之前每个月的扣税res=res-gettax(i,salary,shebao,yibao,gongjijin,gjj_rate,append)return res#统计全年的个税和各种收入 参数为月薪,社保基数,医保基数,公积金基数,公积金比例,附加扣除
def calc_total(salary,bonus,shebao,yibao,gongjijin,gjj_rate,append=1000):n=12 #一年12个月tax_sum=0after_taxsum=0gjj_sum=0yibao_sum=0yanglao_sum=0print('方案:月薪{},年奖金{},社保基数{},医保基数{},公积金基数{},公积金比例{}\n'.format(salary,bonus,shebao,yibao,gongjijin,gjj_rate))for i in range(1,n+1):tax=gettax(i,salary,shebao,yibao,gongjijin,gjj_rate,append)tax_sum+=taxprint("第{}月的个税为{}".format(i,round(tax)),end="\t")month_res=total_benf(i,salary,shebao,yibao,gongjijin,gjj_rate,append)after_tax=month_res[0]after_taxsum+=after_taxprint("税后收入为{}".format(round(after_tax,1)),end=" ")gjj=month_res[1]gjj_sum+=gjjprint("公积金入账为{}".format(gjj),end=" ")print("税后加公积金为{}".format(round(after_tax+gjj,0)),end="\t")yanglao=month_res[3]yanglao_sum+=yanglaoprint("养老入账为{}".format(round(yanglao)),end=" ")yiliao=month_res[2]yibao_sum+=yiliaoprint("医保入账为{}".format(round(yiliao)))bonus_tax=getbonustax(bonus)bonus_income=bonus-bonus_tax #年终奖减去个税 print('年终奖个税为{}'.format(round(bonus_tax)),end="\t")print('税后收入为{}\n'.format(bonus_income))tax_sum+=bonus_taxafter_taxsum+=bonus_incomeprint('累计年度个税为{}'.format(round(tax_sum)),end="\t")print('税后收入为{}'.format(round(after_taxsum)),end=" ")print('公积金入账为{}'.format(round(gjj_sum,1)),end=" ")print('税后加公积金为{}'.format(round(after_taxsum+gjj_sum)),end="\t")print('养老入账为{}'.format(round(yanglao_sum)),end=" ")print('医保入账为{}'.format(round(yibao_sum)))print('-------------------\t-----------------------------------------------------------\t-----------------------------')calc_total(salary=11000,bonus=8000,shebao=2000,yibao=2000,gongjijin=2000,gjj_rate=0.05)
calc_total(salary=22000,bonus=60000,shebao=22000,yibao=22000,gongjijin=22000,gjj_rate=0.05)
calc_total(salary=23000+16*22,bonus=60000,shebao=8400,yibao=8400,gongjijin=15200,gjj_rate=0.05,append=2000)
#salary 月薪+月补贴
#bonus 年终奖金
#shebao 养老保险基数
#yibao 医疗保险基数
#gongjijin 公积金基数
#gjj_rate 公积金比例
#append 附加扣除 默认1000
效果如下 排列非常整齐,美观
Python—完美计算个税和税后收入(求职重要参考神器)相关推荐
- switch语句 计算个人所得税和税后收入
/* * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 作 者: * 完成日期:2013 年 10 月 26 日 * 版 本 号:v1. ...
- 独家 | 教你用Python来计算偏差-方差权衡
作者:Jason Brownlee 翻译:吴振东 校对:车前子 本文约3800字,建议阅读8分钟. 本文为你讲解模型偏差.方差和偏差-方差权衡的定义及联系,并教你用Python来计算. 衡量一个机器学 ...
- python 方差分解_干货 :教你用Python来计算偏差-方差权衡
原标题:干货 :教你用Python来计算偏差-方差权衡 作者:Jason Brownlee 翻译:吴振东 本文约3800字,建议阅读8分钟. 本文为你讲解模型偏差.方差和偏差-方差权衡的定义及联系,并 ...
- python算方差_干货 :教你用Python来计算偏差-方差权衡
作者:Jason Brownlee 翻译:吴振东 本文约3800字,建议阅读8分钟.本文为你讲解模型偏差.方差和偏差-方差权衡的定义及联系,并教你用Python来计算. 衡量一个机器学习模型的性能,可 ...
- 使用OpenCV和Python高效计算视频的总帧数
使用OpenCV和Python高效计算视频的总帧数 1. 效果图 2. 源码 参考 这篇博客将介绍两种使用OpenCV和Python计算视频文件中帧数的方法. 超级快,它依靠OpenCV的视频属性功能 ...
- 在Python中计算一次性计算多个百分位数percentile、quantile
在Python中计算一次性计算多个百分位数percentile. quantile 目录 在Python中计算一次性计算多个百分位数percentile. quantile
- python代码计算图像的分辨率
python代码计算图像的分辨率 def jpeg_res(filename):""""This function prints the resolution ...
- 无网络服务器(linux ubuntu),pip安装python科学计算所有需要包(packages)
无网络服务器(linux ubuntu),pip安装python科学计算所有需要包(packages) # 在windows上打开anaconda,进入环境tab页,在base环境处单击,然后点开te ...
- 目前比较流行的Python科学计算发行版
经常有身边的学友问到用什么Python发行版比较好? 其实目前比较流行的Python科学计算发行版,主要有这么几个: Python(x,y) GUI基于PyQt,曾经是功能最全也是最强大的,而且是Wi ...
最新文章
- 2022-2028年中国新能源环卫车行业深度调研与投资战略规划分析报告
- python使用fpdf生成pdf文件章节(chapter),包含:页眉、页脚、章节主题、数据排版等;
- python基础学习22----协程
- mysql bin.000013_mysql运维-二进制日志BINARY LOG清理_ mysql-bin磁盘占用高处理办法
- J-1 Java概述
- 【布莱克智讯之声公众号】 精彩图文分类导航
- 系统设计题:如何设计一个电商平台积分兑换系统!
- Linux 浅谈代码打印到终端的缓冲区(进度条程序)
- php 零宽断言,正则表达式之零宽断言
- 令人失望的智器Smart Q5
- 感谢折磨你的人[一]
- [NOIP2016]回文日期
- 图片转字符画-----做出酷炫的头像
- 《程序员》9月刊推荐:移动应用产业链大势图
- sodo与visodo的日常使用
- matlab 指数拟合原理,matlab指数增长和阻滞增长拟合代码.doc
- SPA项目开发(首页导航左侧菜单)
- unity 2d角色移动卡住的原因
- 基础博弈论(NIm,威佐夫,巴什游戏)
- Linux学习(十四)——scp远程拷贝