第二题:奖金提成

【程序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,求应发放奖金总数?
程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。      
取名字:当月利润 Monthly profit m_pro 奖金 bonus
我把它修改了下,想显示出奖金明细,每一档怎么算的,新手搞半天,呵呵呵,标记一下
最初代码

bonus1 = 100000 * 0.1
bonus2 = bonus1 + 100000 * 0.075
bonus4 = bonus2 + 200000 * 0.05
bonus6 = bonus4 + 200000 * 0.03
bonus10 = bonus6 + 400000 * 0.015

m_pro = int(input("请输入当月利润总金额:\n"))
i = m_pro
if i <= 100000:
    bonus = i * 0.1
    print('低于或等于10万元时,奖金可提10%%。\n本部分您的奖金为:%d*0.1=' % i, i*0.1)
elif i <= 200000:
    bonus = bonus1 + (i - 100000) * 0.075
    print('低于或等于10万元时,奖金可提10%。\n本部分您的奖金为:100000*0.1=10000')
    print('高于10万元的部分,可提成7.5%%。\n本部分您的奖金为:%d*0.075=' % (i-100000), (bonus-bonus1))
elif i <= 400000:
    bonus = bonus2 + (i - 200000) * 0.05
    print('低于或等于10万元时,奖金可提10%。\n本部分您的奖金为:100000*0.1=10000')
    print('10万到20万元时,奖金可提7.5%。\n本部分您的奖金为:100000*0.075=7500')
    print('高于20万低于40万元的部分,可提成5%%。\n本部分您的奖金为:%d*0.05=' % (i - 200000), (bonus - bonus2))
elif i <= 600000:
    bonus = bonus4 + (i - 400000) * 0.03
    print('低于或等于10万元时,奖金可提10%。\n本部分您的奖金为:100000*0.1=10000')
    print('10万到20万元时,奖金可提7.5%。\n本部分您的奖金为:100000*0.075=7500')
    print('20万到40万元时,奖金可提5%。\n本部分您的奖金为:200000*0.5=10000')
    print('高于40万低于60万元的部分,可提成0.03%%。\n本部分您的奖金为:%d*0.03=' % (i - 400000), (bonus - bonus4))
elif i <= 1000000:
    bonus = bonus6 + (i - 600000) * 0.015
    print('低于或等于10万元时,奖金可提10%。\n本部分您的奖金为:100000*0.1=10000')
    print('10万到20万元时,奖金可提7.5%。\n本部分您的奖金为:100000*0.075=7500')
    print('20万到40万元时,奖金可提5%。\n本部分您的奖金为:200000*0.5=10000')
    print('40万到60万元时,奖金可提3%。\n本部分您的奖金为:200000*0.3=6000')
    print('高于60万低于100万元的部分,可提成1.5%%。\n本部分您的奖金为:%d*0.015=' % (i - 600000), (bonus - bonus6))
else:
    bonus = bonus10 + (i - 1000000) * 0.01
    print('低于或等于10万元时,奖金可提10%。\n本部分您的奖金为:100000*0.1=10000')
    print('10万到20万元时,奖金可提7.5%。\n本部分您的奖金为:100000*0.075=7500')
    print('20万到40万元时,奖金可提5%。\n本部分您的奖金为:200000*0.5=10000')
    print('40万到60万元时,奖金可提3%。\n本部分您的奖金为:200000*0.3=6000')
    print('60万到100万元时,奖金可提1.5%。\n本部分您的奖金为:400000*0.15=6000')
    print('高于100万元的部分,可提成1%%。\n本部分您的奖金为:%d*0.01=' % (i - 1000000), (bonus - bonus10))
print('总奖金bonus = ', bonus)

后面修改代码:

m_pro_lever = [0, 100000, 200000, 400000, 600000, 1000000, 10000000000]
rate = [0.1, 0.075, 0.05, 0.03, 0.015, 0.01]
m_pro = int(input("请输入当月利润总金额:\n"))
print('当月利润总金额为:%d' % m_pro)
bonus = 0
for i in range(0, 7):
    if m_pro > m_pro_lever[5-i]:
        lever_bonus = (m_pro - m_pro_lever[5-i])*rate[5-i]
        bonus = bonus + (m_pro - m_pro_lever[5-i])*rate[5-i]
        m_pro = m_pro_lever[5-i]
        if 6-i == 6:
            print('%d万元以上部分按%.3f计算奖励:%d元' %
                  (m_pro_lever[5 - i] / 10000,  rate[5 - i], lever_bonus))
        else:
            print('%d万元%d万元之间部分按%.3f计算奖励:%d元' % (m_pro_lever[5 - i] / 10000, m_pro_lever[6 - i] / 10000,
                                                 rate[5 - i], lever_bonus))

print("总计奖金", bonus)

这里列表m_pro_lever[6]可以是空的,就是解决100万以上的显示问题才搞个m_pro_lever[6]来,要不然会报错,好像是超出范围了吧。
后面的自己感觉简洁多了,前面傻瓜式的,写的好长,后面就是要注意范围处理好。后面以后修改规则也好改写些哈。哈哈哈哈哈哈。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值