Python每天练习——小程序006

题目002:企业发放的奖金根据利润(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,求应发放奖金总数?

方法一 :请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。

 代码:

#!/user/bin/env python
# coding=utf-8

i = int(input('净利润:'))
arr = [1000000,600000,400000,200000,100000,0]
rat = [0.01,0.015,0.03,0.05,0.75,0.1]
 
r = 0
for idx in xrange(0,6):
    if i > arr[idx]:
        r+=(i-arr[idx])*rat[idx]
        print((i-arr[idx])*rat[idx])
        i = arr[idx]
print(r)

方法二:使用字典控制利润与提成比例的匹配;

#!/user/bin/env python
# coding=utf-8

# 计算公司的年度奖金,单位:万元
num = int(raw_input("请输入今年的公司利润:"))
obj = {100: 0.01, 60: 0.015, 40: 0.03, 20: 0.05, 10: 0.075, 0: 0.1}
#字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中;
keys = obj.keys()
#Python 字典(Dictionary) keys() 函数以列表返回一个字典所有的键。

keys.sort()
#sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。

keys.reverse()
#reverse() 函数用于反向列表中元素。

r = 0
for key in keys:
    if num > key:
        r += (num - key) * obj.get(key)
#Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值。
        num = key
print "今年的奖金为:", r, "万元。"

猜你喜欢

转载自blog.csdn.net/qq_32607273/article/details/81623753
今日推荐