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

原题链接: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. Maven: 互联网开发常用的jar以及版本pom.xl文件

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  2. spring中创建bean对象的三种方式以及作用范围

    时间:2020/02/02 一.在spring的xml配置文件中创建bean对象的三种方式: 1.使用默认构造函数创建.在spring的配置文件中使用bean标签,配以id和class属性之后,且没有 ...

  3. k8s注册节点提示Docker SystemdCheck]: detected cgroupfs" as the Docker cgroup dr iver. The r ecommended dr fiver is" systemd"

    本篇就不长篇大论了,直接附上解决办法 提示如上,此提示非必要要求,只是建议,但是看着不爽,那就解决它 这是未解决之前的docker信息,现在输入下面的指令 sudo echo -e "{\n ...

  4. tf识别非固定长度图片ocr(数字+字母 n位长度可变)- CNN+RNN+CTC

    先安装必须的库 tensorflow_gpu==1.15.0 numpy opencv_python github: https://github.com/bai-shang/crnn_ctc_ocr ...

  5. 使用CStatic显示图片(bmp、ico、png)

    一.显示bmp及ico //h文件 CStatic m_static; //cpp文件 CBitmap bitmap; bitmap.LoadBitmapW(IDB_BITMAP); //加载位图 B ...

  6. Centos7桥接设置网络并使用xrdp+tigervnc实现桌面远程访问

    最近用到了虚拟机,之前虚拟机的网络配置使用的NAT配置好了,但是无论怎样设置都无法使用局域网内的其它主机访问虚拟机的服务.经过了一天的折腾,远程主机仍然连接不上虚拟机服务,后来找到原因,NAT连接模式 ...

  7. Go语言中的单例模式(翻译)

    在过去的几年中,Go语言的发展是惊人的,并且吸引了很多由其他语言(Python.PHP.Ruby)转向Go语言的跨语言学习者. Go语言太容易实现并发了,以至于它在很多地方被不正确的使用了. Go语言 ...

  8. Codeforces_842

    A.枚举一个区间,判断是否有数符合. #include<bits/stdc++.h> using namespace std; long long l,r,x,y,k; int main( ...

  9. python库之matplotlib学习---图无法显示中文

    在代码前面加上 plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] ...

  10. How to setup backup by using EMC NW + EMC NMM for sqlserver failover cluster (not always on)

    As we said, sqlsever fail over cluster is perviously version of always on. The HA was guarenteed by ...