奖金计算,循环与多分支(高教社,《Python编程基础及应用》习题6-5)

题目

企业发放的奖金根据利润提成。利润低于或等于100,000元的,奖金可提10%;利润高于100,000元,低于200,000(100,000 < p <=200,000)时,100,000元及以内部分按10%提成,高于100,000元的部分,可提成7.5%;
200,000 < p <= 400,000时,200,000元及其以内的部分仍按上述办法提成(下同),高于200,000元的部分按5%提成;
400,000 < p <=600,000元时,高于400,000元的部分按3%提成;
600,000 < p <=1,000,000时,高于600,000元的部分按1.5%提成;
p >1,000,000时,超过1,000,000元的部分按1%提成。
按上述需求,编写一个程序,该程序从键盘输入当月利润p,求应发奖金数。

输入格式:

利润总额(浮点数)

输出格式:

奖金数(保留两位小数)

输入样例:

 230000

输出样例:

19000.00

解题

题目代码:

p = float(input())
if p<100001:
    print("%.2f"%(p * 0.1))
elif p<200001:
    print("%.2f"%(10000 + (p - 100000) *0.075))
elif p<400001:
    print("%.2f"%(17500 + (p - 200000) *0.05))
elif p<600001:
    print("%.2f"%(27500 + (p - 400000) *0.03))
elif p<1000001:
    print("%.2f"%(33500 + (p - 600000) *0.015))
else:
    print("%.2f"%(39500 + (p - 1000000) *0.01))

代码解释:

我在这道题的解题中对前面可获得的最高金额都计算出来进行作为常数参与计算,然后根据if-else的性质,判断条件只需要给出一边即可满足判断需求,就不需要再使用and重复了,只需要计算出所在范围内多余的可获得的金额(和前一范围所占百分比不同)加起来即可得出结果,结果需要是两位小数,用%.2f即可

总结

这道题主要是考验怎么去计算所得金额,然后是怎么用if-else更好得进行判断

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值