Python - 计算个人所得税
最近在学python,写了个计算个人所得税计算的脚本,分享。
以下为python3适用版本
#!/usr/bin/python # -*- coding: UTF-8 -*- # 该python脚本用于计算税后工资 # 提示用户输入工资 sal = input("Please input your salary: \n") # 自定义一个异常 class MyException(Exception): def __init__(self, *args): self.args = args try: sal = int(sal) if sal < 0: raise MyException except ValueError: print("给劳资输一个整数,别带字母和小数!\n") except MyException: print("你大爷的,工资是负数?\n") else: # 计算社保和公积金以及扣除该部分之后的工资 shebao = round(sal * 0.105, 2) gongjijin = round(sal * 0.07, 2) aft_sal = sal - shebao - gongjijin # 税率(这个没变) sui_lv = [0.45, 0.35, 0.3, 0.25, 0.2, 0.1, 0.03] # 税改前超出起征点各阶段工资 jin_e1 = [80000, 55000, 35000, 9000, 4500, 1500, 0] # 税改后超出起征点各阶段工资 jin_e2 = [80000, 55000, 35000, 25000, 12000, 3000, 0] # 起征点(调整前3500,调整后5000) qizheng1 = 3500 qizheng2 = 5000 # 应缴税工资:税前工资-社保-公积金-起征点 yinjiao1 = aft_sal - qizheng1 yinjiao2 = aft_sal - qizheng2 # 定义计算所得税函数 # a应缴税工资,b超出起征点各阶段工资,c税率 def jisuan(a, b, c): sum = 0 for i in range(0, len(b)): if a > b[i]: sum += (a - b[i]) * c[i] a = b[i] return round(sum, 2) # 计算所得税 suodesui1 = jisuan(yinjiao1, jin_e1, sui_lv) suodesui2 = jisuan(yinjiao2, jin_e2, sui_lv) print("\n税前月收入: {}".format(sal)) print("五险一金: {}".format(shebao + gongjijin)) print("旧税率应纳税: {} 元,税后收入: {} 元".format(suodesui1, round(aft_sal-suodesui1, 2))) print("新税率应纳税: {} 元,税后收入: {} 元\n".format(suodesui2, round(aft_sal-suodesui2, 2)))
--------------------------------------------------------分割线------------------------------------------------------------------------------------
以下为python2适用的版本
#!/usr/bin/python # -*- coding: UTF-8 -*- # 该python脚本用于计算税后工资 # 提示用户输入工资 sal = raw_input("Please input your salary: \n") # 自定义一个异常 class MyException(Exception): def __init__(self, *args): self.args = args try: sal = int(sal) if sal < 0: raise MyException except ValueError: print("给劳资输一个整数,别带字母和小数!\n") except MyException: print("你大爷的,工资是负数?\n") else: # 计算社保和公积金以及扣除该部分之后的工资 shebao = round(sal * 0.105, 2) gongjijin = round(sal * 0.07, 2) aft_sal = sal - shebao - gongjijin # 税率(这个没变) sui_lv = [0.45, 0.35, 0.3, 0.25, 0.2, 0.1, 0.03] # 税改前超出起征点各阶段工资 jin_e1 = [80000, 55000, 35000, 9000, 4500, 1500, 0] # 税改后超出起征点各阶段工资 jin_e2 = [80000, 55000, 35000, 25000, 12000, 3000, 0] # 起征点(调整前3500,调整后5000) qizheng1 = 3500 qizheng2 = 5000 # 应缴税工资:税前工资-社保-公积金-起征点 yinjiao1 = aft_sal - qizheng1 yinjiao2 = aft_sal - qizheng2 # 定义计算所得税函数 # a应缴税工资,b超出起征点各阶段工资,c税率 def jisuan(a, b, c): sum = 0 for i in range(0, len(b)): if a > b[i]: sum += (a - b[i]) * c[i] a = b[i] return round(sum, 2) # 计算所得税 suodesui1 = jisuan(yinjiao1, jin_e1, sui_lv) suodesui2 = jisuan(yinjiao2, jin_e2, sui_lv) print("\n税前月收入: %d" % sal) print("五险一金: %.2f" % (shebao + gongjijin)) print("旧税率应纳税: %.2f 元,税后收入: %.2f 元" % (suodesui1, (aft_sal-suodesui1))) print("新税率应纳税: %.2f 元,税后收入: %.2f 元\n" % (suodesui2, (aft_sal-suodesui2)))
Python - 计算个人所得税的更多相关文章
- 【Python】个人所得税
以月收入1w,举例计算个税: #!/usr/bin/python #-*- encoding:UTF-8 -*- #========================================== ...
- [转载] python 计算字符串长度
本文转载自: http://www.sharejs.com/codes/python/4843 python 计算字符串长度,一个中文算两个字符,先转换成utf8,然后通过计算utf8的长度和len函 ...
- Python计算斗牛游戏的概率
Python计算斗牛游戏的概率 过年回家,都会约上亲朋好友聚聚会,会上经常会打麻将,斗地主,斗牛.在这些游戏中,斗牛是最受欢迎的,因为可以很多人一起玩,而且没有技术含量,都是看运气(专业术语是概率). ...
- 利用Python计算π的值,并显示进度条
利用Python计算π的值,并显示进度条 第一步:下载tqdm 第二步;编写代码 from math import * from tqdm import tqdm from time import ...
- 用Python计算幂的两种方法,非递归和递归法
用Python计算幂的两种方法: #coding:utf-8 #计算幂的两种方法.py #1.常规方法利用函数 #不使用递归计算幂的方法 """ def power(x, ...
- Python计算分位数
Python计算分位数 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/gdkyxy2013/article/details/80911514 ...
- python 计算校验和
校验和是经常使用的,这里简单的列了一个针对按字节计算累加和的代码片段.其实,这种累加和的计算,将字节翻译为无符号整数和带符号整数,结果是一样的. 使用python计算校验和时记住做截断就可以了. 这里 ...
- 为了用python计算一个汉字的中心点,差点没绞尽脑汁活活累死
为了用python计算一个汉字的中心点,差点没绞尽脑汁活活累死
- python计算时间差的方法
本文实例讲述了python计算时间差的方法.分享给大家供大家参考.具体分析如下: 1.问题: 给定你两个日期,如何计算这两个日期之间间隔几天,几个星期,几个月,几年? 2.解决方法: 标准模块date ...
随机推荐
- bug找到吐的赶脚
bug找到吐的赶脚,真**刺激 一.单元测试 设计思路 首先是需要写一个无括号四则运算函数 下面的运算先是运算括号内的数 然后将null后置 全部代码测试,覆盖率92.4% 二.结构优化 uml图 流 ...
- 通用权限管理系统底层更换最新Oracle驱动的方法
通用权限管理系统底层先前访问Oracle数据库时需要客户端安装驱动软件,如下图: 安装完毕还需要一番配置,系统再引用其dll, 现在我们使用了最新的dll 该dll是Oracle出的最新的版本. 通用 ...
- linux driver error ------ 编译驱动出现 ERROR: Kernel configuration is invalid
ERROR: Kernel configuration is invalid. include/generated/autoconf.h or include/config/au ...
- Excel:公式中的这些特殊数字
19E+307 9E+307是科学计数法表示的一个数字,就简单理解成是Excel支持的一个很大的数字就可以了. 用法示例: =LOOKUP(9E+307,A:A) 根据LOOKUP函数的性质,提取A列 ...
- bzoj千题计划205:bzoj3529: [Sdoi2014]数表
http://www.lydsy.com/JudgeOnline/problem.php?id=3529 有一张n*m的数表,其第i行第j列(1 < =i < =n,1 < =j & ...
- ASP.NET MVC学习(二)之控制器Controller
1.控制器 Controller接收用户请求,将Model和View匹配在一起,共同完成用户请求.它是一个分发器,通过选择不同的Model.View,可以决定完成不同的用户请求. 但Controlle ...
- 20155207王雪纯 2016-2017-2 《Java程序设计》第六周学习总结
20155207 2016-2017-2 <Java程序设计>第六周学习总结 教材学习内容总结 第10章 输入/输出 10.1 InputStream与OutputStream 10.1. ...
- 03 uni-app框架学习:轮播图组件的使用
1.轮播图组件的使用 参照官方文档 2.在页面上加入这个组件 3.在页面中引去css样式 并编写样式 ps:upx单位是什么 简单来说 就相当于小程序中的rpx 是一个自适应的单位 会根据屏幕宽度自动 ...
- Quartus II 安装教程—FPGA入门教程【钛白Logic】
Quartus II 工具安装一般分为两个部分,首先是开发工具本身的安装,其次就是器件库的安装,我们可以根据我们的需要选择相应的器件库来安装,这里我们使用Cyclone IV的FPGA,即安装Cycl ...
- 恶意代码分析实战-确认EXE什么时候编译的
场景 确认开源的后门在中毒机器上是什么版本,具有什么功能. 思路 1.查看样本PE里的编译时间 2.对照开源后门里组件的编译时间 技术点 查看NT头-TimeDateStamp struct IMAG ...