2.16
Posted A-a
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.16相关的知识,希望对你有一定的参考价值。
1.简要描述GIL对Python性能的影响
#GIL本质就是一把互斥锁,既然是互斥锁,所有互斥锁的本质都一样,都是将并发运行变成串行, # 以此来控制同一时间内共享数据只能被一个任务所修改,进而保证数据安全。有了GIL的存在,同一时刻同一进程中只有一个线程被执行 #但是对于计算来说cpu越多越好,由于GPL的存在,我们无法利用多核优势,对于计算来说GPL存在影响了一定的性能 #但是我们大多数情况下都是I/O比较多,对于I/O来说再多的CPU有没有用,所以在I/O比较多的情况下,GPL对Python的性能影响较小
2.Python斐波那契数列1,2,3,5,8,13,21......根据这样的规律,编程求出400万以内的最大斐波那契数列?
def fib_n(n): a, b = 0, 1 result = [] for i in range(n): result.append(b) a, b = b, a+b return result res=fib_n(40000000) print(res)
3.要求一段代码,实现两个字典相加,不同的key对应的值保留,相同的key对应的值相加后保留,如果是字符串就拼接
a={\'a\':1,\'b\':2,\'c\':3,\'d\':4,\'f\':\'hello\'} b={\'b\':3,\'d\':5,\'e\':7,\'m\':8,\'m\':\'word\'} #要求一段代码,实现两个字典相加,不同的key对应的值保留,相同的key对应的值相加后保留,如果是字符串就拼接 for k in a: if k in b: b[k]=a[k]+b[k] else: b[k]=a[k] print(b)
4.从输入一个url到展示页面经历了什么
1、输入地址 2、浏览器查找域名的 IP 地址 3、浏览器向 web 服务器发送一个 HTTP 请求 4、服务器的永久重定向响应 5、浏览器跟踪重定向地址 6、服务器处理请求 7、服务器返回一个 HTTP 响应 8、浏览器显示 html 9、浏览器发送请求获取嵌入在 HTML 中的资源(如图片、音频、视频、CSS、JS等等)
5.http状态码有什么用,列出 你知道的状态码,然后都讲出他们表示什么意思?
http://tool.oschina.net/commons?type=5
6.python主要数据类型有哪些,那些是可变的,那些是不可变的?
#数字 不可变类型 #字符串 不可变类型 #列表 可变类型 #元祖 不可变类型 #字典 可变类型 #集合 可变类型
7.什么是可变数据类型,什么是不可变数据类型?
可变类型:在id不变的情况下,value可以变
#在Python中如何抛出,捕获、处理异常
可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间)
8.在Python中如何抛出,捕获、处理异常
#raise关键字:手动抛出一个通用的异常类型(Exception) #捕获异常try..except..else
9.详细说说list,tuple,dict,的用法,特点
#1.list,有序 可变数据类型 # 切片, # 追加 append, # 删除 pop , remove , # 长度 len, # 包含 in, # 插入 insert # 列表链接 extend # 清空 clear # 赋值 copy # 倒置 reverse #tuple 不可变数据类型 可做字典的key 有序 #方法和list差不多 #字典 无序 可变数据类型 #取 dic[\'a\']=aa get #pop:key存在则弹出值,不存在则返回默认值,如果没有默认值则报错 #删除 pop() popitem() ## print(info_dic.keys()) # print(info_dic.values()) # print(info_dic.items()) #长度 len #包含 in #update 有就更新 没有就添加 #setdefault:key不存在则设置默认值,并且放回值默认值 #fromkeys # d=info_dic.fromkeys((\'name\',\'age\',\'sex\'),None) # print(d) # d1=dict.fromkeys((\'name\',\'age\',\'sex\'),None) # d2=dict.fromkeys((\'name\',\'age\',\'sex\'),(\'egon\',18,\'male\')) # print(d1) # print(d2)
10.python是如何进行内存管理的?
https://www.cnblogs.com/wangyuhangboke/p/7802253.html
python内部使用引用计数,来保持追踪内存中的对象,Python内部记录了对象有多少个引用,即引用计数,当对象被创建时就创建了一个引用计数,当对象不再需要时,这个对象的引用计数为0时,它被垃圾回收。
11.python的程序会内存泄露吗?说一说怎么方面阻止或检测内存泄露?
http://www.jb51.net/article/64745.htm
12 关于Python程序的运行性能方面,有什么手段能提升性能?
#1.让关键代码依赖于外部包 #2.排序时使用键(key) #3.优化循环 #4.使用较新版本的Python #5.尝试多种编码方法 #6.交叉编译应用程序
http://www.jb51.net/article/63166.htm
13.简单实现一个stack
#堆栈:先进后出,后进先出 # l=[] # #入栈 # l.append(\'first\') # l.append(\'second\') # l.append(\'third\') # #出栈 # print(l) # print(l.pop()) # print(l.pop()) # print(l.pop())
14.输入某年某月某日判断这一天是这一年的第几天
year=int(input(\'请输入年:\')) month=int(input(\'请输入月:\')) day=int(input(\'请输入天:\')) sum=day days = [31,28,31,30,31,30,31,31,30,31,30,31] i=0 if ( year%4 == 0 and year%100 != 0) or (year%400 == 0): days[1] = 29 while i< month-1: sum=sum+days[i] i+=1 print(\'这一天是该年的第\',sum,\'天\')
15.如何删除一个list中的元素,如何删除dict中的一对kv
a=[1,2,3,4,5] # a.pop(1) # print(a) # a.remove(3) # print(a)
d={\'a\':1,\'b\':2,\'c\':3} print(d.popitem()) print(d)
16.如何查找字符串中的特定字符?Find()和index有什么不同?
s=\'dssadughsgg\' #print(s.find(\'e\'))#-1 #find 找到查找字符的位置,找不到就返回-1 print(s.index(\'v\'))#找不到就报错
17.Python常用的第三方库
http://blog.csdn.net/qq_33610643/article/details/53444130
18.描述一下表与视图的区别?
# 1、视图是已经编译好的sql语句。而表不是 # 2、视图没有实际的物理记录。而表有。 # 3、表是内容,视图是窗口 # 4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改 # 5、表是内模式,试图是外模式 # 6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。 # 7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。 # 8、视图的建立和删除只影响视图本身,不影响对应的基本表。 # 9、不能对视图进行update或者insert into操作。
19.索引有什么作用?有哪些分类?有什么好处和坏处?
一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,
因此对查询语句的优化显然是重中之重。说起加速查询,就不得不提到索引了。索引在mysql中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能
非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。
索引优化应该是对查询性能优化最有效的手段了。索引能够轻易将查询性能提高好几个数量级。
索引相当于字典的音序表,如果要查某个字,如果不使用音序表,则需要从几百页中逐页去查。
通过不断地缩小想要获取数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是说,有了这种索引机制,我们可以总是用同一种查找方式来锁定数据。
普通索引INDEX:加速查找 唯一索引: -主键索引PRIMARY KEY:加速查找+约束(不为空、不能重复) -唯一索引UNIQUE:加速查找+约束(不能重复) 联合索引: -PRIMARY KEY(id,name):联合主键索引 -UNIQUE(id,name):联合唯一索引 -INDEX(id,name):联合普通索引
索引有三大好处 1:能够提高数据检索的效率,降低数据库的IO成本 2:能够提高排序检索的性能 3:能够提高分组检索的性能
索引的坏处 1:增加硬盘存储空间 2:增加增删改带来的IO量
20.dict 的 items() 方法与 iteritems() 方法的不同?
items方法将所有的字典以列表方式返回,其中项在返回时没有特殊的顺序;
iteritems方法有相似的作用,但是返回一个迭代器对象
以上是关于2.16的主要内容,如果未能解决你的问题,请参考以下文章
iOS 应用提交二进制被拒绝 (2.16) + UIBackgroundModes
Log4j 2.16 中的 PropertyConfigurator.configure() (log4j 1.2.4) 替换