题目:企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?
def share_profit():
i = int(input("净利润:"))
profit =[1000000,600000,400000,200000,100000,0]
rat = [0.01,0.015,0.03,0.05,0.075,0.1]
r = 0
for j in range(6):
if i > profit[j]:
r += (i-profit[j])*rat[j]
i = profit[j]
return r
感觉这个程序很巧妙。
首先是定义了两个列表,分别表示利润和提成的百分比。而且分别是一一对应的。profit是倒序排列的。这样方便迭代。比如当利润为90万元时,首先遍历profit中90万元首先大于的那个数,即60万。然后计算出60万到90万之间部分的提成。然后计算60万元的提成。以此往下计算。
>>> share_profit()
净利润:300000
22500.0