ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

个税计算

2022-03-28 00:35:24  阅读:195  来源: 互联网

标签:10 20 0.03 40 60 65 计算


问题描述

【个税计算】企业发放的奖金根据利润提成。利润(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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有