其他分享
首页 > 其他分享> > 个税计算

个税计算

作者:互联网

问题描述

【个税计算】企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?

问题分析

用if-

 

解决方法

  1. 用if-elif-else的方法,很常规的方法。就直接给代码。

    l = int(input ('请输入l(万元):')) 
    if l <= 10:
       x = l * 0.10
       print (x)
    elif l <=  20:
       x = 10 *0.1 + (l - 10) * 0.075
       print (x)
    elif l <= 40:
       x = 10 * 0.1 + 10 * 0.075 + (l - 20 ) * 0.05
       print(x)
    elif l <= 60:
       x = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + (l - 40) * 0.03
       print(x)
    elif l <= 100:
       x = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + (l - 60) * 0.15
       print(x)
    else:
       x = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + 40 * 0.15 + (l - 100)* 0.01
       print(x)
    • 刚开始的时候是出现的这种错误,第一行当时写的是 l = input ('请输入l(万元):'),是因为input返回的是str型,不能和int型直接比较。所以要int(),将str转化为int。

  2. 用列表的方法,很巧妙的方法。借鉴的方法,越看越能感受到它的巧妙之处。

    def getBonus_2(I):
       I = I/10000     #简化运算
       bonus = 0
       rates = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1]
       stra = [100, 60, 40, 20, 10, 0]
       for i in range(len(rates)):   # len(rates)= 6 i:0,1,2,3,4,5,
           if(I > stra[i]):
               bonus += (I - stra[i])*rates[i]
               I = stra[i]
       return bonus*10000


    profit = eval(input("请输入利润值:"))
    print("您所获的金额是{0:.0f}元".format(getBonus_2(profit)))

    定义两个列表rates,star。rates用来表示每一部分的提成的百分比,star表示不同阶段的利润的分界点。而且star与rates要一一对应。当输入65的时候:

    65 < 100,继续向下比较,

    65 > 60, bouns = ( 65 - 60) * 0.015, I = 60 ;

    60 > 40 , bouns = (60 - 40) * 0.03 + ( 65 - 60) * 0.015, I = 40;

    40 > 20 , bouns = (40 - 20 ) * 0.05 + (60 - 40) * 0.03 + ( 65 - 60) * 0.015, I = 20

    20 > 10 , bouns = (20 - 10) * 0.075 + (40 - 20 ) * 0.05 + (60 - 40) * 0.03 + ( 65 - 60) * 0.015, I = 10

    10 > 0 , bouns = (10 - 0) * 0.1 + (20 - 10) * 0.075 + (40 - 20 ) * 0.05 + (60 - 40) * 0.03 + ( 65 - 60) * 0.015, I = 0

    大概过程就是这样。

     

标签:10,20,0.03,40,60,65,计算
来源: https://www.cnblogs.com/xidongdong594/p/16065315.html