Python:每日一题002

 

题目:

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

程序分析:

请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。

 

个人解题思路:用if-elif 多分支处理

 

  while True:
      profit = input("请输入利润: (单位:万元)\n").strip()
      if not profit:continue
      if not profit.isdigit():
          print("您的输入有误!请重新输入。")
          continue
      else:
          profit = eval(profit)
          bonus_a,bonus_b,bonus_c,bonus_d,bonus_e = 10*0.1,10*0.075,20*0.05,20*0.03,40*0.015
          bonus_list = [bonus_a,bonus_b,bonus_c,bonus_d,bonus_e]
          if profit > 100:
              bonus = (profit - 100) * 0.01 + sum(bonus_list)
          elif profit > 60:
              bonus = (profit - 60) *0.015 + sum(bonus_list[:-1])
          elif profit > 40:
              bonus = (profit - 40) *0.03 + sum(bonus_list[:-2])
          elif profit > 20:
              bonus = (profit - 20) *0.05 + sum(bonus_list[:-3])
          elif profit > 10:
              bonus = (profit - 10) *0.075 + sum(bonus_list[:-4])
          elif profit > 0:
              bonus = profit *0.1
          else:
              print("没利润,没有奖金!")
              continue
          print("奖金是%s万元"%bonus)

  其他解题参考:

 

money = int(input("输入利润:"))
rat = [0.01,0.015,0.03,0.05,0.075,0.1]
level = [100,60,40,20,10,0]
s = 0
for i in range(6):
    if money-level[i]>0:
        s += (money-level[i])*rat[i]
        money = level[i]
print (s)

  

 

 (本文编号002,首发于2018年9月12日)

转载于:https://www.cnblogs.com/Nicholas0707/p/9638063.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值