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

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 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵