|
发表于 2017-4-19 13:23:48
|
显示全部楼层
分成列表写方便修改吧,阅读上确实没有层层分支清晰
- # 利润从大到小排,单位是万元
- profits = [100, 60, 40, 20, 10, 0]
- # 利润和提成都可以往上加元素
- rates = [0.01 , 0.015, 0.03, 0.05, 0.075, 0.10]
- if len(profits) != len(rates):
- raise IndexError # 两个列表不同长度算法会失效,先报错
- else:
- pass # 防御性
- def bonus_cal(profit):
- """根据利润计算奖金,跟所得税的超额累进同种形式"""
- bonus = 0
- for i in range(len(profits)):
- # 开头确定利润的范围
- if profit - profits[i] > 0:
- bonus += (profit-profits[i])* rates[i] # 大于利润区域的部分
- # 往后面奖金是固定的, 循环算完返回退出就是了
- for j in range(i,len(profits)-1):
- bonus += (profits[j]-profits[j+1]) * rates[j+1]
- return bonus
- else:
- pass # 防御性
- print("没有利润还想要啥自行车!!") # 利润<=0 的情况
-
复制代码 |
评分
-
查看全部评分
|