因为特殊原因,昨天没有做题。今天继续~

原题链接:http://www.runoob.com/python/python-exercise-example2.html

题目:

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

我的代码:

def cal(i):
if i <=100000:
bonus=i*0.1
elif 100000<i<=200000:
bonus=10000+(i-100000)*0.075
elif 200000<i<=400000:
bonus=10000+7500+(i-200000)*0.05
elif 400001<i<=600000:
bonus=10000+7500+10000+(i-400000)*0.03
elif 600001<i<=1000000:
bonus=10000+7500+10000+6000+(i-600000)*0.015
elif i>1000000:
bonus=10000+7500+10000+6000+6000+(i-1000000)*0.01    #代码繁琐,而且每一个阶段获得的利润最大值都要手动去算,很麻烦
print(bonus)

思考:

看到了练习的答案,发现可以用for循环来实现,减少了要自己手动输入和计算的工作量!所以每个阶段的分界和利润比,都以可以迭代的列表的形式写入函数中,具体看下面。。。

def cal2(i):
profit=[1000000,600000,400000,200000,100000,0]
rate = [0.01,0.015,0.03,0.05,0.075,0.1]        #同样的index,profit是该rate的下限,便于接下来由大到小迭代
bonus=0
for x in range(0,6):
if i>profit[x]:                    #先判断i属于哪个级别开始算
bonus += (i-profit[x])*rate[x]
i=profit[x]                    #把那个级别的下限赋值给i,继续for循环
print(bonus)

利用了列表可以迭代的特性,真的方便了很多~本来还想过用字典一一对应地存profit和rate,但是字典是没有顺序的,不能用于这样由大到小的循环判断。

python3练习100题——002的更多相关文章

  1. python3练习100题——003

    今天继续-答案都会通过python3测试- 原题链接:http://www.runoob.com/python/python-exercise-example3.html 题目:一个整数,它加上100 ...

  2. python3练习100题——004

    继续做题-经过python3的测试 原题链接:http://www.runoob.com/python/python-exercise-example4.html 题目:输入某年某月某日,判断这一天是 ...

  3. python3练习100题——036

    原题链接:http://www.runoob.com/python/python-exercise-example36.html 题目:求100之内的素数. 之前有类似的题,所以这次遇到觉得很容易了, ...

  4. python3练习100题——035

    原题链接:http://www.runoob.com/python/python-exercise-example34.html 题目:文本颜色设置. 学习了一下python3 的文本颜色设置. 其实 ...

  5. python3练习100题——020

    原题链接:http://www.runoob.com/python/python-exercise-example20.html 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下 ...

  6. python3练习100题——013

    熟悉的水仙花数来了,,,... 原题链接:http://www.runoob.com/python/python-exercise-example13.html 题目:打印出所有的"水仙花数 ...

  7. python3练习100题——056

    题目:画图,学用circle画圆形. 可以用turtle.circle画图. import turtle turtle.setup(0.6,0.6) turtle.pensize(3) turtle. ...

  8. python3练习100题——050

    题目:输出一个随机数. 程序分析:使用 random 模块. import random print( random.randint(1,10) ) # 产生 1 到 10 的一个整数型随机数 pri ...

  9. python3练习100题——045

    题目:统计 1 到 100 之和. sum(range(1,101)) 题目太容易了,我都不想用迭代浪费时间. 觉得这100道题难度设计越来越不合理.

随机推荐

  1. SQLException:The server time zone

    报错信息如下: java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represen ...

  2. K8S部署遇到的问题处理汇总

    第一个: node节点注册提示:failed to get config map: Unauthorized 代码如下: [root@node1 ~]# kubeadm join --token ll ...

  3. ros中坐标系管理系统

    首先安装小海龟实例的功能包ros-melodic-turtle-tf  qqtsj  ~  sudo apt install ros-melodic-turtle-tf [sudo] qqtsj ...

  4. 死磕mysql

    数据库创建语句 create database new; 创建一个名为new 的数据库 drop database new; 删除名为new的数据库 数据库名为小写,当初教我的那个人对我说在某个系统中 ...

  5. Codeforces_837

    A.扫一遍. #include<bits/stdc++.h> using namespace std; int n; string s; int main() { cin >> ...

  6. 2019icpc南京网络赛 A The beautiful values of the palace(离线+树状数组)

    题意: (假设所有的点对应的值已经求出)给你一个1e6*1e6的矩阵,有m<=1e5个点有值,其余都为0 q<=1e5个询问,求子矩阵的权值和 思路: 根据二维差分,对于询问左下角(x1, ...

  7. mybaitis的延迟加载

    概念:延迟加载:用到的时候才加载 因为我们在多表查询是,效率不如单表快,多个单表查询,然后使用懒加载,完成 多表关联查询 什么情况下使用懒加载 mybaitis中的表关系是一对一或者一对多的时候 我们 ...

  8. Go语言实现:【剑指offer】顺时针打印矩阵

    该题目来源于牛客网<剑指offer>专题. 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 例如,如果输入如下4 X 4矩阵:1 2 3 4 5 6 7 8 9 10 11 ...

  9. JMeter+Grafana+Influxdb搭建可视化性能测试监控平台(待继续完善。。。)

    influxdb下载.安装.配置.启动 InfluxDB是一个当下比较流行的时序数据库,InfluxDB使用 Go 语言编写,无需外部依赖,安装配置非常方便,适合构建大型分布式系统的监控系统. 下载: ...

  10. abp(net core)+easyui+efcore实现仓储管理系统——入库管理之一(三十七)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...