前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python编程经典案例【考题】公司奖金发放

Python编程经典案例【考题】公司奖金发放

作者头像
阿黎逸阳
发布2022-11-11 14:29:52
7830
发布2022-11-11 14:29:52
举报
文章被收录于专栏:阿黎逸阳的代码

本文和你一起探索Python编程经典案例,让你沉浸式学习Python。

你可以拿着题目先思考,然后再对照本文解题方法进行比较。有不同的见解欢迎到公众号中跟我一起探讨。

本文目录

  1. 经典案例【考题】
  2. 经典案例解题方法 2.1 应用if循环分层计算提成 2.1 应用列表和for循环计算提成

一、经典案例【考题】

代码语言:javascript
复制
问题:企业发放的奖金根据利润分成,利润小于等于10万元时,奖金可提10%。利润大于10万,小于等于50万时,低于10万的部分按10%提成,高于10万的部分,按8%提成。利润高于50万,小于等于100万时,高于50万的部分,按6%提成。利润高于100万,小于等于200万时,高于100万的部分,按4%提成。利润高于200万,小于等于500万时,高于200万的部分,按2%提成。利润高于500万,按1%提成。
代码语言:javascript
复制
输入:

个人年度利润90000元

代码语言:javascript
复制
输出:
代码语言:javascript
复制
提成9000元

二、经典案例解题方法

代码语言:javascript
复制
1   方法一:应用if循环分层计算提成

上述案例第一种解题思路为:

  • step1:应用if循环判断个人利润属于哪一个档次。
  • step2:根据档次分阶段计算提成额再求和。

具体代码如下:

代码语言:javascript
复制
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,得到结果:

代码语言:javascript
复制
'提成9000.0元'

可以手动验证结果是对的。

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

代码语言:javascript
复制
2   方法二:应用列表和for循环计算提成

上述案例第二种解题思路为:

  • step1:把不同层次的利润节点和计算提成的比例存放到列表中。
  • step2:应用if语句判断个人利润所处的位置,再结合for循环计算最终提成。

具体代码如下:

代码语言:javascript
复制
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,得到结果:

代码语言:javascript
复制
'提成26000.0元'

可以手动验证结果是对的。该方法的优点是代码简洁,缺点是逻辑理解起来比较困难。

至此,Python中的编程经典案例【考题】公司奖金发放已讲解完毕。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-08-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 阿黎逸阳的代码 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档