本文讲述了python基础编程100例:第17期—奖金计算!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:
第17期—奖金计算
1 问题描述
企业发放的奖金根据利润提成。
利润低于或等于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%提成
输入利润,求应发放奖金总数~
2 解题思路
首先用input函数获取用户输入的利润总额
然后根据奖金提成比例计算奖金
最后输出计算结果
3 解题方法
方法一
profit = float(input("请输入利润,单位为万元:"))
assert profit >= 0, "请输入非负数!"
if profit <= 10:
bonus = profit * 0.1
elif 10 < profit <= 20:
bonus = 10 * 0.1 + (profit-10) * 0.075
elif 20 < profit <= 40:
bonus = 10 * 0.1 + 10 * 0.075 + (profit-20) * 0.05
elif 40 < profit <= 60:
bonus = 10 * 0.1+ 10 * 0.075 + 20 * 0.05 + (profit-40) * 0.03
elif 60 < profit <= 100:
bonus = 10 * 0.1+ 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + (profit-60) * 0.015
else:
bonus = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + 40 * 0.015 + (profit-100) * 0.01
print(f"奖金为{bonus:0.2f}万元")
第1行: 用input函数获取用户输入的利润总额,float函数转化为浮点数,赋值给变量profit
第2行: 用assert断言函数限定变量profit大于0,若大于0,执行后面的代码,否则报错“AssertionError: 请输入非负数!”
第4-15行: 用if...elif...else语句对用户输入的利润总额进行判断,根据奖金提成比例计算奖金
第17行: print函数输出最终计算结果,保留两位小数
方法二
profit = float(input("请输入利润,单位为万元:"))
assert profit >= 0, "请输入非负数!"
bonus = 0
value = [100, 60, 40, 20, 10, 0]
rates = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1]
for i in range(6):
if profit > value[i]:
temp = (profit - value[i]) * rates[i]
bonus += temp
profit = value[i]
print(f"奖金为{bonus:0.2f}万元")
第1行: 用input函数获取用户输入的利润总额,float函数转化为整型,赋值给变量profit
第2行: 用assert断言函数限定变量profit大于0,若大于0,执行后面的代码,否则报错“AssertionError: 请输入非负数!”
第4行: 创建存储奖金总额的变量bonus,初始赋值为0
第5行: 创建列表value,传入的参数为利润的界限值
第6行: 创建列表rates, 传入的参数为对应的奖金提成比例
第7行: 由于列表value共有6个参数,即利润总额划分为6个档位,用for循环遍历value这一列表中每一个元素的索引值
第8行: 当用户输入的利润总额大于列表value中的利润值时,进入循环
第9行: 通过列表的索引,计算每一个档位的奖金
第10行: 在每次循环中,每个档位的奖金temp与变量bonus相加,并将求和结果再赋值给变量bonus
第11行: 为变量 profit 赋值为value[i],直到变量 profit不满足条件,退出循环
第12行: print函数输出最终计算结果,保留两位小数
以利润 105 万为例
第一次循环,i = 0,
temp = (105 - 100) * 0.01 = 5 * 0.01
bomus = 0 + 5 * 0.01
profit = 100
第二次循环,i = 1,
temp = (100 - 60) * 0.015 = 40 * 0.015
bomus = 0 + 5 * 0.01 + 40 * 0.015
profit = 60
第三次循环,i = 2,
temp = (60 - 40) * 0.03= 20 * 0.03
bomus = 0 + 5 * 0.01 + 40 * 0.015 + 20 * 0.03
profit = 40
第四次循环,i = 3,
temp = (40 - 20) * 0.05= 20 * 0.05
bomus = 0 + 5 * 0.01 + 40 * 0.015 + 20 * 0.03 + 20 * 0.05
profit = 20
第五次循环,i = 4,
temp = (20 - 10) * 0.075= 10 * 0.075
bomus = 0 + 5 * 0.01 + 40 * 0.015 + 20 * 0.03 + 20 * 0.05 + 10 * 0.075
profit = 10
第六次循环,i = 5,
temp = (10 - 0) * 0.1= 10 * 0.1
bomus = 0 + 5 * 0.01 + 40 * 0.015 + 20 * 0.03 + 20 * 0.05 + 10 * 0.075 + 10 * 0.1
profit = 0
退出循环
更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。
如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!