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,求应发放奖金总数?

自己的答案:

 profit = int(input("Your profit:"))
if profit <= 100000:
bonus = profit*0.1
elif profit <= 200000:
bonus = 100000*0.1+(profit-100000)*0.075
elif profit <= 400000:
bonus = 100000*0.1+100000*0.075+(profit-200000)*0.05
elif profit <= 600000:
bonus = 100000*0.1+100000*0.075+200000*0.05+(profit-400000)*0.03
elif profit <= 1000000:
bonus = 100000*0.1+100000*0.075+200000*0.05+200000*0.03+(profit-600000)*0.015
elif profit >= 1000000:
bonus = 100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(1000000-profit)*0.01
print("Your bonus:",bonus)

优化答案:

 i = 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 idx in range(0,6):
if i>arr[idx]:
r+=(i-arr[idx])*rat[idx]
print (i-arr[idx])*rat[idx]
i=arr[idx]
print r

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

2.题目:

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

自己的答案:

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

优化答案:

 l = []
for i in range(3):
x = int(input('integer:\n'))
l.append(x)
l.sort()
print l

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

3.题目:

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

自己的答案:

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

优化答案:

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

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

4.题目:

写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将修改后的字典返回

自己的答案:

 def case_dict(dict):
new_dict = {}
for k,v in dict.items():
if len(v) > 2:
v = v[:2]
new_dict[k] = v
else:
new_dict[k] = v
return new_dict
print(case_dict({'a':'','b':'','c':''}))

优化答案:

 def case_dict(dict):
for key in dict:
value = dict[key]
if len(value) > 2:
dict[key] = value[:2]
return dict
print(case_dict({'a':'','b':'','c':''}))

反思:尽量不要创建新字典(当字典特别大的时候,内存负荷过高),for循环不要用 k v 去接收 键 和 值,可以便历 键 ,然后通过键去取值  

最新文章

  1. BZOJ 1036: [ZJOI2008]树的统计Count [树链剖分]【学习笔记】
  2. Large Margin DAGs for Multiclass Classification
  3. MVP -----个人理解与示例(android例子 实现)
  4. 在cxf中使用配置避免增加字段导致客户端必须更新、同步实体属性的问题
  5. imx6 mac地址设置
  6. Python OpenCV——Image
  7. sublimeLinter-jshint 配置
  8. 【智能家居篇】wifi在智能家居中的应用
  9. 12个Icon图标资源网站
  10. supesite 模板相关文档记录
  11. Asp.Net Core
  12. Asp.Net Web API 导航3
  13. Webdriver的设计模式:Page Object(页面模型)
  14. 【Mysql知识补充】
  15. iOS-Xcode编码自动补全失效
  16. C# 中使用面向切面编程(AOP)中实践代码整洁
  17. webservlce 的各个属性
  18. redis客户端、分布式锁及数据一致性
  19. java.lang.IllegalMonitorStateException异常
  20. C# 读取CSV和EXCEL文件示例

热门文章

  1. Winform中在FastReport的PreviewControl预览控件中对report控件模板中控件值进行修改
  2. Mysql高手系列 - 第12篇:子查询详解
  3. Java中对象创建时的内存分配
  4. java工具方法
  5. 记一次jmeter从txt文本获取数值并给测试计划的变量赋值,jmeter永久性修改变量。
  6. go 学习笔记之10 分钟简要理解 go 语言闭包技术
  7. Spring MVC-从零开始-@ResponseBody(未完待续)
  8. Hadoop源代码点滴-文件系统HDFS
  9. Python 设计和历史的 27 个问题
  10. Spring GetBean流程