求职的时候,经常被问到期望薪资如何,收到多个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—完美计算个税和税后收入(求职重要参考神器)相关推荐

  1. switch语句 计算个人所得税和税后收入

    /* * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 作 者: * 完成日期:2013 年 10 月 26 日 * 版 本 号:v1. ...

  2. 独家 | 教你用Python来计算偏差-方差权衡

    作者:Jason Brownlee 翻译:吴振东 校对:车前子 本文约3800字,建议阅读8分钟. 本文为你讲解模型偏差.方差和偏差-方差权衡的定义及联系,并教你用Python来计算. 衡量一个机器学 ...

  3. python 方差分解_干货 :教你用Python来计算偏差-方差权衡

    原标题:干货 :教你用Python来计算偏差-方差权衡 作者:Jason Brownlee 翻译:吴振东 本文约3800字,建议阅读8分钟. 本文为你讲解模型偏差.方差和偏差-方差权衡的定义及联系,并 ...

  4. python算方差_干货 :教你用Python来计算偏差-方差权衡

    作者:Jason Brownlee 翻译:吴振东 本文约3800字,建议阅读8分钟.本文为你讲解模型偏差.方差和偏差-方差权衡的定义及联系,并教你用Python来计算. 衡量一个机器学习模型的性能,可 ...

  5. 使用OpenCV和Python高效计算视频的总帧数

    使用OpenCV和Python高效计算视频的总帧数 1. 效果图 2. 源码 参考 这篇博客将介绍两种使用OpenCV和Python计算视频文件中帧数的方法. 超级快,它依靠OpenCV的视频属性功能 ...

  6. 在Python中计算一次性计算多个百分位数percentile、quantile

    在Python中计算一次性计算多个百分位数percentile. quantile 目录 在Python中计算一次性计算多个百分位数percentile. quantile

  7. python代码计算图像的分辨率

    python代码计算图像的分辨率 def jpeg_res(filename):""""This function prints the resolution ...

  8. 无网络服务器(linux ubuntu),pip安装python科学计算所有需要包(packages)

    无网络服务器(linux ubuntu),pip安装python科学计算所有需要包(packages) # 在windows上打开anaconda,进入环境tab页,在base环境处单击,然后点开te ...

  9. 目前比较流行的Python科学计算发行版

    经常有身边的学友问到用什么Python发行版比较好? 其实目前比较流行的Python科学计算发行版,主要有这么几个: Python(x,y) GUI基于PyQt,曾经是功能最全也是最强大的,而且是Wi ...

最新文章

  1. 2022-2028年中国新能源环卫车行业深度调研与投资战略规划分析报告
  2. python使用fpdf生成pdf文件章节(chapter),包含:页眉、页脚、章节主题、数据排版等;
  3. python基础学习22----协程
  4. mysql bin.000013_mysql运维-二进制日志BINARY LOG清理_ mysql-bin磁盘占用高处理办法
  5. J-1 Java概述
  6. 【布莱克智讯之声公众号】 精彩图文分类导航
  7. 系统设计题:如何设计一个电商平台积分兑换系统!
  8. Linux 浅谈代码打印到终端的缓冲区(进度条程序)
  9. php 零宽断言,正则表达式之零宽断言
  10. 令人失望的智器Smart Q5
  11. 感谢折磨你的人[一]
  12. [NOIP2016]回文日期
  13. 图片转字符画-----做出酷炫的头像
  14. 《程序员》9月刊推荐:移动应用产业链大势图
  15. sodo与visodo的日常使用
  16. matlab 指数拟合原理,matlab指数增长和阻滞增长拟合代码.doc
  17. SPA项目开发(首页导航左侧菜单)
  18. unity 2d角色移动卡住的原因
  19. 基础博弈论(NIm,威佐夫,巴什游戏)
  20. Linux学习(十四)——scp远程拷贝

热门文章

  1. 《Java编程思想》读书笔记分享
  2. window系统设置系统变量
  3. ZOJ 3426 HDU 3719 Snooker Referee
  4. bitcoin(1)
  5. 微信企业号和微信公众号使用js-sdk说明和注意事项
  6. MakeFile入门详解
  7. 沧小海笔记之基于xilinx的三速以太网相关知识的学习与理解
  8. php支付宝红包接口,支付宝支付接口(即时到账交易接口)
  9. 壁挂炉计算机控制系统,DIY壁挂炉温控器连入米家实现自动和远程控制
  10. 推荐一个免费超级好用的简历模板网站