本文和你一起探索Python编程经典案例,让你沉浸式学习Python。你可以拿着题目先思考,然后再对照本文解题方法进行比较。有不同的见解欢迎到公众号中跟我一起探讨。
  


  

一、经典案例【考题】

  
问题:
  
企业发放的奖金根据利润分成,利润小于等于10万元时,奖金可提10%。利润大于10万,小于等于50万时,低于10万的部分按10%提成,高于10万的部分,按8%提成。利润高于50万,小于等于100万时,高于50万的部分,按6%提成。利润高于100万,小于等于200万时,高于100万的部分,按4%提成。利润高于200万,小于等于500万时,高于200万的部分,按2%提成。利润高于500万,按1%提成。
  
输入:
  
个人年度利润90000元
  
输出:
  
提成9000元

  
  

二、经典案例解题方法

  

1 方法一:应用if循环分层计算提成

  
上述案例第一种解题思路为:
  
step1:应用if循环判断个人利润属于哪一个档次。
  
step2:根据档次分阶段计算提成额再求和。
  
具体代码如下:

profit = int(input('请输入个人年度利润单位元'))
def pfit_sep(profit):
    bonus = 0
    if profit<=100000:
        bonus = profit*0.1
    elif profit<=500000:
        bonus = 100000*0.1 + (profit-100000)*0.08       
    elif profit<=1000000:
        bonus = 100000*0.1 + (500000-100000)*0.08 + (profit-500000)*0.06
    elif profit<=2000000:
        bonus = 100000*0.1 + (500000-100000)*0.08+ (1000000-500000)*0.06 + (profit-1000000)*0.04
    elif profit<=5000000:
        bonus = 100000*0.1 + (500000-100000)*0.08+ (1000000-500000)*0.06 + (2000000-1000000)*0.04 + (profit-2000000)*0.02
    elif profit>5000000:
        bonus =  100000*0.1 + (500000-100000)*0.08+ (1000000-500000)*0.06 + (2000000-1000000)*0.04 + (5000000-2000000)*0.02 + (profit-5000000)*0.01
    return '提成' + str(bonus) + '元'
pfit_sep(profit)

input(‘请输入个人年度利润单位元’):手动输入个人年度利润。
  
若手动输入个人年度利润为90000,得到结果:

'提成9000.0元'

可以手动验证结果是对的。该方法的优点是逻辑简单,理解起来比较清晰。缺点是太过繁琐,有些可以省略的地方一直在重复。

  

2 方法二:应用列表和for循环计算提成

  
上述案例第二种解题思路为:
  
step1:把不同层次的利润节点和计算提成的比例存放到列表中。
  
step2:应用if语句判断个人利润所处的位置,再结合for循环计算最终提成。
  
具体代码如下:

profit = int(input('请输入个人年度利润单位元'))
def pfit_sep1(profit):
    bonus = 0
    pfit_array = [5000000, 2000000, 1000000, 500000, 100000, 0]
    rat = [0.01, 0.02, 0.04, 0.06, 0.08, 0.1]
    for i in range(len(pfit_array)):
        if profit>pfit_array[i]:
            bonus += (profit - pfit_array[i])*rat[i]
            profit = pfit_array[i]
    return '提成' + str(bonus) + '元'
pfit_sep1(profit)

若手动输入个人年度利润为300000,得到结果:

'提成26000.0元'

可以手动验证结果是对的。该方法的优点是代码简洁,缺点是逻辑理解起来比较困难。至此,Python中的编程经典案例【考题】公司奖金发放已讲解完毕。如想了解更多Python中的函数,可以翻看公众号中“学习Python”模块相关文章。
  
你可能感兴趣:
用Python绘制皮卡丘
用Python绘制词云图
用Python绘制520永恒心动
Python人脸识别—我的眼里只有你
Python画好看的星空图(唯美的背景)
【Python】情人节表白烟花(带声音和文字)
用Python中的py2neo库操作neo4j,搭建关联图谱
Python浪漫表白源码合集(爱心、玫瑰花、照片墙、星空下的告白)

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐