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