夜光序言:
如果雨之后还是雨
如果忧伤之后仍是忧伤
请让我从容面对这别离之后的
别离 微笑地继续去寻找
一个不可能再出现的 你
正文:
案例 1 所得税计算器
1.1 需求分析
所得税计算器是我们日常生活中常用的,在已知一个人的总收入后,怎么样计算出要缴的税是多少事我们关心的问题,这个程序能计算要缴的税。
1.1.1 系统概述
在程序中输入个人收入值后计算应该缴纳的个人所得税的金额,例如:
总收入:8000
所得税:825.00
输入总收入是 8000 元,那么程序计算出所得税是 825 元。
1.1.2 系统运行环境
一、硬件环境
处理器:Intel Pentium 166 MX 或更高
内存:32MB
硬盘空间:1GB
显卡:SVGA 显示适配器
二、软件环境
操作系统:Windows 98/ME/2000/XP+Python3.6
1.2 总体设计
根据我国规定个税起征点是 2000,当超过 2000 时个人所得税的计算方法如表。在已经知道收入的情况下要计算个人所得税,显然要判断收入的值的范围,根据不同的收入值,选取不同的所得税率进行计算。
表 2-4 个人所得税率
例 1:如一个人的收入是 3500 元,计算所得税
3500 中的 3500-2000=1500 的部分要上缴所得税,按规定计算过程如下:
1500 中的 500 元所得税是 500*5%,余下 1000;
1000 按 10%计算,所得税是 1000*10%;
因此所得税=500*5%+1000*10%
例 2:如一个人的收入是 8000 元,计算所得税
8000 中的 8000-2000=6000 的部分要上缴所得税,按规定计算过程如下:
6000 中的 500 元所得税是 500*5%,余下 5500 元;
5500 元中的 1500 元按 10%计算,所得税 1500*10%,余下 4000 元;
4000 元中的 3000 元按 15%计算,所得税 3000*15%,余下 1000 元;
1000 元按 20%计算,所得税 1000*20%
因此所得税=500*5%+1500*10%+3000*15%
由此可见在已经知道收入的情况下要计算个人所得税,显然要判断收入的值的范围,根据不同的收入值,选取不同的所得税率进行计算。在计算过程中我们可以先计算好各个范围的所得税:
t500=500*0.05
t2000=t500+(2000-500)*0.1
t5000=t2000+(5000-2000)*0.15
t20000=t5000+(20000-5000)*0.2
t40000=t20000+(40000-20000)*.25
t60000=t40000+(60000-40000)*.3
t80000=t60000+(80000-60000)*.35
t100000=t80000+(100000-80000)*.40
其中 t500 是在 500 元内的所得税,t2000 是在 2000 元内的所得税,t5000 是在 5000 元内所得税。解决这个问题要用到分支语句的多重嵌套与多重结构,如果 s 是超出 2000 部分的收入,那么可以使用下面的 if 逻辑来计算所得税:
if(s<500):
t=s*0.05
elif (s<2000):
t=t500+(s-500)*0.1
elif (s<5000):
t=t2000+(s-2000)*0.15
elif (s<20000):
t=t5000+(s-5000)*.2
elif (s<40000):
t=t20000+(s-20000)*.25
elif (s<60000):
t=t40000+(s-40000)*.3
elif (s<80000):
t=t60000+(s-60000)*.35
elif (s<100000):
t=t80000+(s-100000)*.4
else:
t=t100000+(s-100000)*.45
例如 s=4000,那么落在 elif(s<5000)额范围,所得税是 t=t2000+(s-2000)*0.15,其中 2000 元内的已经计算在 t2000 中了,超过 2000 的部分的所得税是(s-200)*0.15。
1.3 程序代码
# 夜光 个人所得税计算器
try:
w=input("总收入:")
w=float(w)
s=w-2000
t500=500*0.05
t2000=t500+(2000-500)*0.1
t5000=t2000+(5000-2000)*0.15
t20000=t5000+(20000-5000)*0.2
t40000=t20000+(40000-20000)*.25
t60000=t40000+(60000-40000)*.3
t80000=t60000+(80000-60000)*.35
t100000=t80000+(100000-80000)*.40
#计算所得税
if(s<500):
t=s*0.05
elif (s<2000):
t=t500+(s-500)*0.1
elif (s<5000):
t=t2000+(s-2000)*0.15
elif (s<20000):
t=t5000+(s-5000)*.2
elif (s<40000):
t=t20000+(s-20000)*.25
elif (s<60000):
t=t40000+(s-40000)*.3
elif (s<80000):
t=t60000+(s-60000)*.35
elif (s<100000):
t=t80000+(s-100000)*.4
else:
t=t100000+(s-100000)*.45
print("所得税:%.2f" %t)
except Exception as e:
print(e)
1.4 程序测试
总收入:8000000
所得税:3583725.00