python犯傻之题目解答思路比较与反思

  • 2019 年 10 月 22 日
  • 筆記

1.题目:

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

自己的答案:

 1 profit = int(input("Your profit:"))   2 if profit <= 100000:   3     bonus = profit*0.1   4 elif profit <= 200000:   5     bonus = 100000*0.1+(profit-100000)*0.075   6 elif profit <= 400000:   7     bonus = 100000*0.1+100000*0.075+(profit-200000)*0.05   8 elif profit <= 600000:   9     bonus = 100000*0.1+100000*0.075+200000*0.05+(profit-400000)*0.03  10 elif profit <= 1000000:  11     bonus = 100000*0.1+100000*0.075+200000*0.05+200000*0.03+(profit-600000)*0.015  12 elif profit >= 1000000:  13     bonus = 100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(1000000-profit)*0.01  14 print("Your bonus:",bonus)

简便答案:

 1 i = int(input('净利润:'))   2 arr = [1000000,600000,400000,200000,100000,0]   3 rat = [0.01,0.015,0.03,0.05,0.075,0.1]   4 r = 0   5 for idx in range(0,6):   6     if i>arr[idx]:   7         r+=(i-arr[idx])*rat[idx]   8         print (i-arr[idx])*rat[idx]   9         i=arr[idx]  10 print r

反思:在遇到元素计算多次出现时,不要多用if else,可以用列表和for循环遍历的方式来解决。

 

2.题目:

输入三个整数x,y,z,请把这三个数由小到大输出。

自己的答案:

1 count1 = int(input("输入第一个数:"))  2 count2 = int(input("输入第二个数:"))  3 count3 = int(input("输入第三个数:"))  4 list = [count1,count2,count3]  5 list.sort()  6 print(list)

简便答案:

1 l = []  2 for i in range(3):  3     x = int(input('integer:n'))  4     l.append(x)  5 l.sort()  6 print l

反思:遇到让用户输入多个项目的时候可以用列表和for循环遍历。

 

3.题目:

  写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。

自己的答案:

1 def my_indexes(content):  2     '''输出参数奇数位索引的值'''  3     new_list = []  4     for i in range(0,len(content)):  5         if i%2 == 1:  6             new_list.append(content[i])  7     return new_list  8 val = my_indexes([0,1,2,3,4,5,6,7])  9 print(val)

简便答案:

1 def my_indexes(content):  2     content = content[1::2]  3     return  content  4 val = my_indexes([0,1,2,3,4])  5 print(val)

反思:切片切片切片,灵活运用!