练习题

1,利润和提成的关系如图所示,从键盘输入当月利润I,求应发放奖金总数

      

 

# coding:utf-8
x = int(input('请输入净利润:'))

arr = [1000000, 600000, 400000, 200000, 100000, 0]
rat = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1]
r = 0

for i in range(0, 6):
    if x > arr[i]:
        r += (x-arr[i])*rat[i]
        print((x-arr[i])*rat[i])
        x = arr[i]
print(r)

执行结果:

请输入净利润:180000
6000.0
10000.0
16000.0

 

2,回数是指从左向右读和从右向左读都是一样的数,例如12321,909。请利用filter()筛选出回数  

def is_palindrome(n):
    s = str(n)
    for i in range(len(s)):
        if s[i] != s[-(i+1)]:
            return False
    return True

output = filter(is_palindrome, range(1, 1000))
print('1~1000:', list(output))

执行结果:

1~1000: [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99, 101, 111, 121, 131, 141, 151, 161。。。999

 

3,假设我们用一组tuple表示学生名字和成绩:

L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
请用sorted()对上述列表分别按名字排序
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]

def by_name(t):
    return t[0].lower()

L2 = sorted(L, key=by_name)
print(L2)      # [('Adam', 92), ('Bart', 66), ('Bob', 75), ('Lisa', 88)]


def by_score(t):
    return t[1]

L2 = sorted(L, key=by_score)
print(L2)     # [('Bart', 66), ('Bob', 75), ('Lisa', 88), ('Adam', 92)]

 

4,

 

 

 



















 

posted @ 2022-06-12 22:59  夜未央leo  阅读(32)  评论(0编辑  收藏  举报