python犯傻之题目解答思路比较与反思
程序员文章站
2022-06-22 15:22:44
1.题目: 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%; 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%; 20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%; ......
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)
反思:切片切片切片,灵活运用!