【需求】
因为自己最近开始关注工资的事情,就在网上查找税前税后工资怎么换算……网上有详细讲解的,但是你需要对照规则一项一项地手算。而且我可能有很多数据要换算……看起来是在太难受了,不如写个Python程序吧~
税前转换税后的计算方法参考了 @肖半仙 的回答:大学生刚毕业,不知道工资是怎么计算的?(扣税,五险一金等等)求教知乎大神www.zhihu.com
我认真地理解了她的回答,但不知道我的理解到位了没有:
税后=税前-五险一金-税收
其中税收又与交税基数和税率有关,基本上可以认为,交税基数=税前-五险一金-3000(基本上的意思是,如果公积金和补充公积金合起来比例超过12%,那么超出的部分需要计入交税基数)。其中的税率也是与基数有关,分区间税率不同。
其中的税率数据参考了百度百科:
另外税后转换税前的方法,是我自己推到的,这个有一点点难度,大概是需要解数学方程,但是方程的参数是变量,而且是阶跃形式的变量(当然也很有可能我数学不够好……扯了好一会儿)
附:用到的税率表
【效果】开始运行,有3个选择:0,1或者quit,其他输入非法
税前税后的转换,税前10000税后7315,结果是对应的
【测试】
1、边界输入:如0,80000+,均可以正确转换
2、非法输入:输入必须能够int(input)不报错,否则continue重新输入
【实现中的主要难点】
用时:1个白天+1个晚上
1、首先实现税前转税后,算法我改进了4次:
第一次是人类思维,用if-else手写判断缴税基数在哪个区间里;
然后觉得太傻了,代码里有很多重复的部分,如果这个区间更长,怎么办?于是写成了for循环;
但是写完还是觉得不好,用上了for,但是看起来逻辑什么的还是很乱,于是想到这个场景很适合用递归,就封装成一个函数,然后自己调用自己;
这个时候已经好多了,但最后函数定义的参数上做了一点改动,成为现在最后的版本,个人感觉更好看。
"""
#法1:
if (revenue_base<0):
revenue=0
elif ((revenue_base-1500)<0):
revenue&#