社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python-100 练习题 02

spearhead_cai • 5 年前 • 552 次点击  
阅读 35

Python-100 练习题 02

练习题2 的网址:

www.runoob.com/python/pyth…


Example-2 企业发放奖金

题目:企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?

思路

这道题目可以根据每个奖金发放区间来分界,先分别定义两个数组,一个数组是存放每个区间奖金的提成比例,记为rat;另一个数组是记录每个发放区间的上边界,表示当超过该边界时候,直接利用上边界乘以该区间的提成比例,例如对于在 10 万元以下的这个区间,就是上边界为 10 万,然后超过后,该区间发放奖金就是100000*0.1

然后我们先考虑利润超过 100 万的情况,依次降低利润,对应每种情况。

代码实现

def pay_award():
    profit = int(input('净利润:'))
    arr = [1000000, 600000, 400000, 200000, 100000, 0]
    rat = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1]
    r = 0
    for idx in range(0, 6):
        if profit > arr[idx]:
            # 当前区间的利润
            r += (profit - arr[idx]) * rat[idx]
            print('current award=', (profit - arr[idx]) * rat[idx])
            # 重置下一个区间起始奖金数量
            profit = arr[idx]
    return r
复制代码

简单的测试例子:

# 利润是 11000
净利润:11000
current award= 1100.0
award= 1100.0

# 利润是 1100000 (110万)
净利润:1100000
current award= 1000.0
current award= 6000.0
current award= 6000.0
current award= 10000.0
current award= 7500.0
current award= 10000.0
award= 40500.0
复制代码

源代码在:

github.com/ccc013/Code…

或者点击原文,也可以查看源代码。


欢迎关注我的微信公众号--机器学习与计算机视觉,或者扫描下方的二维码,大家一起交流,学习和进步!

往期精彩推荐

Python-100 练习系列
学习笔记
数学学习笔记
Github项目 & 资源教程推荐

今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/DHRq75p0be
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/28414
 
552 次点击