Python入门到入狱 2021-10-20 11:20 采纳率: 81.8%
浏览 270
已结题

Python里用数轴来分界,定位是什么意思?

一道根据利润算提成的题目,写了程序又好像没写,一半都是算出来的,有没有更好更智能的办法,题目见程序:

#题目:企业发放的奖金根据利润提成。
#利润(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,求应发放奖金总数?
#程序分析:请利用数轴来分界,定位。

利润 = int(input('请输入利润(万元):'))
num1 = 利润*0.1 # 利润 <= 10
num2 = (利润 - 10)*0.075 # 10 < 利润 <= 20
num3 = (利润 - 20)*0.05 # 20 < 利润 <= 40
num4 = (利润 - 40)*0.03 # 40 < 利润 <= 60
num5 = (利润 - 60)*0.015 # 60 < 利润 <= 100
num6 = (利润 - 100)*0.01 # 利润 > 100
if 利润 <= 10:
     num = num1
if 10 < 利润 <= 20:
     num = 1 + num2
if 20 < 利润 <= 40:
     num = 1 + 0.75 + num3
if 40 < 利润 <= 60:
     num = 1 + 0.75 + 1 + num4
if 60 < 利润 <= 100:
     num = 1 + 0.75 + 1 + 0.6 + num5
if 利润 > 100:
     num = 1 + 0.75 + 1 + 0.6 + 0.6 + num6
print('提成为(万元):',num)
  • 写回答

3条回答 默认 最新

  • bobhuang 2021-10-20 12:03
    关注
    
    profit = float(input('请输入利润(万元):'))
    lookup_tbl = [
        (100, 0.01),
        (60, 0.015),
        (40, 0.03),
        (20, 0.05),
        (10, 0.075),
        (0, 0.1),
    ]
    bonus = 0.0
    for x, r in lookup_tbl:
        # 拆分成 a(>x 部分) 和 b(<= x部分)
        if profit > x:
            a = profit - x
        else:
            a = 0
        b = profit - a
        bonus += a * r
        profit = b
    print('提成(万元):{}'.format(bonus))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 10月28日
  • 已采纳回答 10月20日
  • 创建了问题 10月20日

悬赏问题

  • ¥15 DSP28335AD采集实验
  • ¥15 在winods上用C# 怎么编写CAN通信在linux运行
  • ¥15 关于螺旋焊缝的图像处理
  • ¥15 qt 散点图自定义图形
  • ¥100 将USDZ文件转化为带颜色的OBJ文件
  • ¥15 对象代号: , 表单: 不存在!
  • ¥15 WebSocket的问题
  • ¥15 centos上启动kylin后网页报错404
  • ¥20 使用hackrf进行信号收发时接收到的信号幅度太小
  • ¥15 WebSocket的问题