本文和你一起探索Python编程经典案例,让你沉浸式学习Python。
你可以拿着题目先思考,然后再对照本文解题方法进行比较。有不同的见解欢迎到公众号中跟我一起探讨。
经典案例【考题】
经典案例解题方法
2.1 应用if循环分层计算提成
2.1 应用列表和for循环计算提成

问题: 企业发放的奖金根据利润分成,利润小于等于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 = 0if profit<=100000:bonus = profit*0.1elif profit<=500000:bonus = 100000*0.1 + (profit-100000)*0.08elif profit<=1000000:bonus = 100000*0.1 + (500000-100000)*0.08 + (profit-500000)*0.06elif profit<=2000000:bonus = 100000*0.1 + (500000-100000)*0.08+ (1000000-500000)*0.06 + (profit-1000000)*0.04elif profit<=5000000:bonus = 100000*0.1 + (500000-100000)*0.08+ (1000000-500000)*0.06 + (2000000-1000000)*0.04 + (profit-2000000)*0.02elif 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.01return '提成' + str(bonus) + '元'pfit_sep(profit)
input('请输入个人年度利润单位元'):手动输入个人年度利润。
若手动输入个人年度利润为90000,得到结果:
'提成9000.0元'可以手动验证结果是对的。
2 方法二:应用列表和for循环计算提成
上述案例第二种解题思路为:
step1:把不同层次的利润节点和计算提成的比例存放到列表中。
step2:应用if语句判断个人利润所处的位置,再结合for循环计算最终提成。
具体代码如下:
profit = int(input('请输入个人年度利润单位元'))def pfit_sep1(profit):bonus = 0pfit_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中的编程经典案例【考题】公司奖金发放已讲解完毕。


扫一扫关注我
13162366985
投稿微信号、手机号