Python面试题

第一部分 Python基础篇(80题)


1、为什么学习Python?

语言本身简洁,优美,功能超级强大

跨平台

非常火爆的社区

很多有名的大公司在用



2、通过什么途径学习的Python?

自学成才



3、Python和Java、PHP、C、C#、C++等其他语言的对比?



4、简述解释型和编译型编程语言?

编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。

解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!python是一门解释型语言



5、Python解释器种类以及特点?

Cpython(最常用的版本)

Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。

Jyhton

Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。

IronPython

Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)

PyPy(特殊)

Python实现的Python,将Python的字节码字节码再编译成机器码。



6、位和字节的关系?

数据存储是以“字节”(Byte)为单位,数据传输是以大多是以“位”(bit,又名“比特”)为单位,位只能容纳两个值(0或1),位是计算机存储的基本单位,是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符;8位 = 1字节,一个8位的字节包含256种可能的0,1组合。



7、b、B、KB、MB、GB 的关系?

1GB = 1024MB;1MB = 1024KB;1KB = 1024B;1B = 8b



8、请至少列举5个 PEP8 规范(越多越好)。

1. 缩进。4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格。

2. 每行最大长度79,换行可以使用反斜杠,最好使用圆括号。换行点要在操作符的后边敲回车。

3. 类和top-level函数定义之间空两行;类中的方法定义之间空一行;函数内逻辑无关段落之间空一行;其他地方尽量不要再空行。

4. 不要在一句import中多个库,比如import os, sys不推荐。

5. 避免不必要的空格。


9、通过代码实现如下转换:

二进制转换成十进制:v = “0b1111011”

>>> int('0b1111011',2)

123

十进制转换成二进制:v =18

>>> bin(18)

'0b10010'

八进制转换成十进制:v = “011”

>>> int('011',8)

9

十进制转换成八进制:v =30

>>> oct(30)

'0o36

十六进制转换成十进制:v = “0x12”

>>> int('0x12',16)

18

十进制转换成十六进制:v = 87

>>> hex(87)

'0x57'



10、请编写一个函数实现将IP地址转换成一个整数

如:10.3.9.12 转换规则为:

10          00001010

3            00000011

9            00001001

12          00001100

再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ?

def ip(value):

temp = value.split(".")

s =""

    for iin temp:

i = (bin(int(i)).lstrip("0b"))

if len(i) !=8:

i = i.zfill(8)

s += i

print(int(s,2))



11、python递归的最大层数?

python默认递归最大的层数是998,可以通过sys.setrecursionlimit(1000)来设置



12、求结果:

v1 =1 or 3

1

v2 = 1 and 3

3

v3 = 0 and 2 and 1

0

v4 = 0 and 2 or 1

1

v5 = 0 and 2 or 1 or 4

1

v6 = 0 or False and 1

False

Python逻辑运算符



13、ascii、unicode、utf-8、gbk 区别?

ASCII码使用一个字节编码,所以它的范围基本是只有英文字母、数字和一些特殊符号 ,只有256个字符。

在表示一个Unicode的字符时,通常会用“U+”然后紧接着一组十六进制的数字来表示这一个字符。在基本多文种平面(英文为 Basic Multilingual Plane,简写 BMP。它又简称为“零号平面”, plane 0)里的所有字符,要用四位十六进制数(例如U+4AE0,共支持六万多个字符);在零号平面以外的字符则需要使用五位或六位十六进制数了。旧版的Unicode标准使用相近的标记方法,但却有些微的差异:在Unicode 3.0里使用“U-”然后紧接着八位数,而“U+”则必须随后紧接着四位数。

Unicode能够表示全世界所有的字节

GBK是只用来编码汉字的,GBK全称《汉字内码扩展规范》,使用双字节编码。

UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。



14、字节码和机器码的区别?

机器码就是计算机可以直接执行,并且执行速度最快的代码。

字节码是一种中间状态(中间码)的二进制代码(文件)。需要直译器转译后才能成为机器码。



15、三元运算规则以及应用场景?

三元运算符就是在赋值变量的时候,可以直接加判断,然后赋值

格式:[on_true] if [expression] else [on_false]

res = 值1 if 条件 else 值2

三元运算符



16、列举 Python2和Python3的区别?菜鸟教程|python 2.x与3.x的区别

python2与python3的区别



17、用一行代码实现数值交换

a =1

b = 2

a,b =b, a



18、Python3和Python2中 int 和 long的区别?

int(符号整数):通常被称为是整数或整数,没有小数点的正或负整数

long(长整数):无限大小的整数,这样写整数和一个大写或小写的L。



19、xrange和range的区别?

1. range和xrange都是在循环中使用,输出结果一样。

2. range返回的是一个list对象,而xrange返回的是一个生成器对象(xrange object)。

3. xrange则不会直接生成一个list,而是每次调用返回其中的一个值,内存空间使用极少,因而性能非常好。

注意:Python 3.x已经去掉xrange,全部用range代替。



20、文件操作时:xreadlines和readlines的区别?

二者使用时相同,但返回类型不同,xreadlines返回的是一个生成器,readlines返回的是list


21、列举布尔值为False的常见值?

0 , [ ] , " , ( ) , { }


22、字符串、列表、元组、字典每个常用的5个方法?

字符串

words = ‘today is a wonderfulday‘

print(words.strip(‘today‘))#如果strip方法指定一个值的话,那么会去掉这两个值

print(words.count(‘a‘))#统计字符串出现的次数

print(words.index(‘is‘))#找下标

print(words.index(‘z‘))#找下标如果元素不找不到的话,会报错

print(words.find(‘z‘))#找下标,如果元素找不到的话,返回-1

列表:

sample_list = [‘a‘,1,(‘a‘,‘b‘)]  #创建列表

sample_list = [‘a‘,‘b‘,0,1,3]  #  Python 列表操作

value_start = sample_list[0]  #得到列表中的某一个值

end_value = sample_list[-1]  #得到列表中的某一个值

del sample_list[0]  #删除列表的第一个值

sample_list[0:0] = [‘sample value‘]  #在列表中插入一个值

元组:

#元组也是一个list,他和list的区别是元组的元素无法修改

tuple1 = (2,3,4,5,6,4,7)

print(type(tuple1))

print(tuple1[:7])

print(tuple1[:5:-1])

字典

dict = {‘ob1‘:‘computer‘, ‘ob2‘:‘mouse‘, ‘ob3‘:‘printer‘}

#每一个元素是pair,包含key、value两部分。key是Integer或string类型,value 是任意类型。键是唯一的,字典只认最后一个赋的键值。

D.get(key, 0)      #同dict[key],多了个没有则返回缺省值,0。[]没有则抛异常

D.has_key(key)      #有该键返回TRUE,否则FALSE

D.keys()            #返回字典键的列表

D.values()


23、lambda表达式格式以及应用场景?

lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。

lambda所表示的匿名函数的内容应该是很简单的,如果复杂的话,干脆就重新定义一个函数了,使用lambda就有点过于执拗了。

lambda就是用来定义一个匿名函数的,如果还要给他绑定一个名字的话,就会显得有点画蛇添足,通常是直接使用lambda函数。如下所示:

# 需求:将列表中的元素按照绝对值大小进行升序排列

list1 = [3,5,-4,-1,0,-2,-6]

print(sorted(list1, key=lambda x: abs(x)))  #[0, -1, -2, 3, -4, 5, -6]



24、pass的作用?

1、空语句

2、保证格式完整

3、占位语句



25、*arg和**kwarg作用

1、函数调用里的*arg和**kwarg:

(1)*arg:元组或列表“出现”

**kwarg:字典“出没”

(2)分割参数

2、函数定义时传的*arg /**kwarg:

(1)接收参数


26、is和==的区别

== 是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等

is 也被叫做同一性运算符,这个运算符比较判断的是对象间的唯一身份标识,也就是id是否相同。



27、简述Python的深浅拷贝以及应用场景?

字面理解:浅拷贝指仅仅拷贝数据集合的第一层数据,深拷贝指拷贝数据集合的所有层。所以对于只有一层的数据集合来说深浅拷贝的意义是一样的,比如字符串,数字,还有仅仅一层的字典、列表、元祖等.

应用场景:比如在CMDB系统中,我们定义了一个报警模版call给所有的服务器使用,此时有一批特殊应用的服务器需要不通的报警参数,我们既不想单独新建模版来一个一个添加报警参数,又不想修改默认模版而影响其他机器的报警阈值。此时我们就需要用深拷贝来完成。



28、Python垃圾回收机制?

Python的GC模块主要运用了“引用计数”(reference

counting)来跟踪和回收垃圾。在引用计数的基础上,还可以通过“标记-清除”(mark and

sweep)解决容器对象可能产生的循环引用的问题。通过“分代回收”(generation

collection)以空间换取时间来进一步提高垃圾回收的效率。



29、Python的可变类型和不可变类型?

可变:列表、字典

对于可变类型,无论创建多少个可变类型,只要值相同,都不指向同个内存地址(除非进行复制操作,那么他们将会指向同一个地址)。

不可变:数字、字符串、元祖 

对不可变类型的变量重新赋值,实际上是重新创建一个不可变类型的对象,并将原来的变量重新指向新创建的对象(如果没有其他变量引用原有对象的话(即引用计数为0),原有对象就会被回收)。



30、求结果:

v = dict.fromkeys(['k1','k2'],[])

v[‘k1’].append(666)

print(v)

v[‘k1’] = 777

print(v)

{'k1': [666], 'k2': [666]}

{'k1': 777, 'k2': [666]}



31、求结果:

def  num():

    return [lambda x:i*x for i in range(4)]

print([ m(2) for m in num()])

[6, 6, 6, 6]


32、列举常见的内置函数?

Python3 内置函数


33、filter、map、reduce的作用?


34、一行代码实现9*9乘法表

print('\n'.join(['\t'.join(["%2s*%2s=%2s"%(j,i,i*j) for j in range(1,i+1)]) for i in range(1,10)]))



35、如何安装第三方模块?以及用过哪些第三方模块?

pip install



36、至少列举8个常用模块都有那些?

time;re;os;sys;datetime;hashlib;pickle;random



37、re的match和search区别?

match 从第一个开始匹配

search 从任何位置匹配



38、什么是正则的贪婪匹配?

尽量多的匹配



39、求结果:

a. [ i % 2 for i in range(10) ]

[0,1,0,1,0,1,0,1,0,1]

b. ( i % 2 for i in range(10) )

图片发自简书App



40、求结果:

a. 1 or 2

1

b. 1and 2

2

c. 1 < (2==2)

Flase

d. 1 < 2 == 2

True



41、def func(a,b=[]) 这种写法有什么坑?


42、如何实现 “1,2,3”变成 [‘1’,’2’,’3’] ?




43、如何实现[‘1’,’2’,’3’]变成[1,2,3] ?

[if !supportLineBreakNewLine]

[endif]

44、比较: a = [1,2,3] 和 b = [(1),(2),(3) ] 以及 b = [(1,),(2,),(3,) ]的区别?

45、如何用一行代码生成[1,4,9,16,25,36,49,64,81,100]?

46、一行代码实现删除列表中重复的值?

47、如何在函数中设置一个全局变量?

48、logging模块的作用?以及应用场景?

49、请用代码简答实现stack 。

50、常用字符串格式化哪几种?

51、简述 生成器、迭代器、可迭代对象 以及应用场景?

52、用Python实现一个二分查找的函数。

53、谈谈你对闭包的理解?

54、os和sys模块的作用?

55、如何生成一个随机数?

56、如何使用python删除一个文件?

57、谈谈你对面向对象的理解?

58、Python面向对象中的继承有什么特点?

59、面向对象深度优先和广度优先是什么?

60、面向对象中super的作用?

61、是否使用过functools中的函数?其作用是什么?

62、列举面向对象中带爽下划线的特殊方法,如:__new__、__init__

63、如何判断是函数还是方法?

64、静态方法和类方法区别?

65、列举面向对象中的特殊成员以及应用场景

66、1、2、3、4、5 能组成多少个互不相同且无重复的三位数

67、什么是反射?以及应用场景?

68、metaclass作用?以及应用场景?

69、用尽量多的方法实现单例模式。

70、装饰器的写法以及应用场景。

71、异常处理写法以及如何主动跑出异常(应用场景)

72、什么是面向对象的mro

73、isinstance作用以及应用场景?

[if !supportLineBreakNewLine]

[endif]

74、写代码并实现:

[if !supportLineBreakNewLine]

[endif]


Given

an array of integers, return indices ofthe two numbers such that they add up to a specific target.You may assumethat each input would

have exactly one solution,

and you may notuse the same element twice.

Example:

Given nums = [

2, 7, 11, 15], target = 9,

Because nums[

0] + nums[1] = 2 + 7 = 9,

return [0, 1]


75、json序列化时,可以处理的数据类型有哪些?如何定制支持datetime类型?

76、json序列化时,默认遇到中文会转换成unicode,如果想要保留中文怎么办?

77、什么是断言?应用场景?

78、有用过with statement吗?它的好处是什么?

79、使用代码实现查看列举目录下的所有文件。

80、简述 yield和yield from关键字。

[if !supportLineBreakNewLine]

[endif]

第二部分 网络编程和并发(34题)

[if !supportLineBreakNewLine]

[endif]

1、简述 OSI 七层协议。

2、什么是C/S和B/S架构?

3、简述 三次握手、四次挥手的流程。

4、什么是arp协议?

5、TCP和UDP的区别?

6、什么是局域网和广域网?

7、为何基于tcp协议的通信比基于udp协议的通信更可靠?

8、什么是socket?简述基于tcp协议的套接字通信流程。

9、什么是粘包?socket 中造成粘包的原因是什么?哪些情况会发生粘包现象?

10、IO多路复用的作用?

11、什么是防火墙以及作用?

12、select、poll、epoll 模型的区别?

13、简述 进程、线程、协程的区别 以及应用场景?

14、GIL锁是什么鬼?

15、Python中如何使用线程池和进程池?

16、threading.local的作用?

17、进程之间如何进行通信?

18、什么是并发和并行?

19、进程锁和线程锁的作用?

20、解释什么是异步非阻塞?

21、路由器和交换机的区别?

22、什么是域名解析?

23、如何修改本地hosts文件?

24、生产者消费者模型应用场景及优势?

25、什么是cdn?

26、LVS是什么及作用?

27、Nginx是什么及作用?

28、keepalived是什么及作用?

29、haproxy是什么以及作用?

30、什么是负载均衡?

31、什么是rpc及应用场景?

32、简述 asynio模块的作用和应用场景。

33、简述 gevent模块的作用和应用场景。

34、twisted框架的使用和应用?

[if !supportLineBreakNewLine]

[endif]

第三部分 数据库和缓存(46题)

[if !supportLineBreakNewLine]

[endif]

1、列举常见的关系型数据库和非关系型都有那些?

2、MySQL常见数据库引擎及比较?

3、简述数据三大范式?

4、什么是事务?MySQL如何支持事务?

5、简述数据库设计中一对多和多对多的应用场景?

6、如何基于数据库实现商城商品计数器?

7、常见SQL(必备)详见武沛齐博客:https://www.cnblogs.com/wupeiqi/articles/5729934.html

8、简述触发器、函数、视图、存储过程?

9、MySQL索引种类

10、索引在什么情况下遵循最左前缀的规则?

11、主键和外键的区别?

12、MySQL常见的函数?

13、列举 创建索引但是无法命中索引的8种情况。

14、如何开启慢日志查询?

15、数据库导入导出命令(结构+数据)?

16、数据库优化方案?

17、char和varchar的区别?

18、简述MySQL的执行计划?

19、在对name做了唯一索引前提下,简述以下区别:

[if !supportLineBreakNewLine]

[endif]


select * from tb where name=‘Oldboy-Wupeiqi’

select * from tb where name =

‘Oldboy-Wupeiqi’ limit 1


20、1000w条数据,使用limit offset 分页时,为什么越往后翻越慢?如何解决?

21、什么是索引合并?

22、什么是覆盖索引?

23、简述数据库读写分离?

24、简述数据库分库分表?(水平、垂直)

25、redis和memcached比较?

26、redis中数据库默认是多少个db 及作用?

27、python操作redis的模块?

28、如果redis中的某个列表中的数据量非常大,如果实现循环显示每一个值?

29、redis如何实现主从复制?以及数据同步机制?

30、redis中的sentinel的作用?

31、如何实现redis集群?

32、redis中默认有多少个哈希槽?

33、简述redis的有哪几种持久化策略及比较?

34、列举redis支持的过期策略。

35、MySQL 里有 2000w 数据,redis 中只存20w 的数据,如何保证 redis 中都是热点数据?

36、写代码,基于redis的列表实现先进先出、后进先出队列、优先级队列。

37、如何基于redis实现消息队列?

38、如何基于redis实现发布和订阅?以及发布订阅和消息队列的区别?

39、什么是codis及作用?

40、什么是twemproxy及作用?

41、写代码实现redis事务操作。

42、redis中的watch的命令的作用?

43、基于redis如何实现商城商品数量计数器?

44、简述redis分布式锁和redlock的实现机制。

45、什么是一致性哈希?Python中是否有相应模块?

46、如何高效的找到redis中所有以oldboy开头的key?

[if !supportLineBreakNewLine]

[endif]

第四部分 前端、框架和其他(155题)

[if !supportLineBreakNewLine]

[endif]

1、谈谈你对http协议的认识。

2、谈谈你对websocket协议的认识。

3、什么是magic string ?

4、如何创建响应式布局?

5、你曾经使用过哪些前端框架?

6、什么是ajax请求?并使用jQuery和XMLHttpRequest对象实现一个ajax请求。

7、如何在前端实现轮训?

8、如何在前端实现长轮训?

9、vuex的作用?

10、vue中的路由的拦截器的作用?

11、axios的作用?

12、列举vue的常见指令。

13、简述jsonp及实现原理?

14、是什么cors ?

15、列举Http请求中常见的请求方式?

16、列举Http请求中的状态码?

17、列举Http请求中常见的请求头?

18、看图写结果:

[if !supportLineBreakNewLine]

[endif]

19、看图写结果:

[if !supportLineBreakNewLine]

[endif]

20、看图写结果:

[if !supportLineBreakNewLine]

[endif]

21、看图写结果:

[if !supportLineBreakNewLine]

[endif]

22、看图写结果:

[if !supportLineBreakNewLine]

[endif]

23、看图写结果:

[if !supportLineBreakNewLine]

[endif]

24、django、flask、tornado框架的比较?

25、什么是wsgi?

26、django请求的生命周期?

27、列举django的内置组件?

28、列举django中间件的5个方法?以及django中间件的应用场景?

29、简述什么是FBV和CBV?

30、django的request对象是在什么时候创建的?

31、如何给CBV的程序添加装饰器?

32、列举django orm 中所有的方法(QuerySet对象的所有方法)

33、only和defer的区别?

34、select_related和prefetch_related的区别?

35、filter和exclude的区别?

36、列举django orm中三种能写sql语句的方法。

37、django orm 中如何设置读写分离?

38、F和Q的作用?

39、values和values_list的区别?

40、如何使用django orm批量创建数据?

41、django的Form和ModeForm的作用?

42、django的Form组件中,如果字段中包含choices参数,请使用两种方式实现数据源实时更新。

43、django的Model中的ForeignKey字段中的on_delete参数有什么作用?

44、django中csrf的实现机制?

45、django如何实现websocket?

46、基于django使用ajax发送post请求时,都可以使用哪种方法携带csrf token?

47、django中如何实现orm表中添加数据时创建一条日志记录。

48、django缓存如何设置?

49、django的缓存能使用redis吗?如果可以的话,如何配置?

50、django路由系统中name的作用?

51、django的模板中filter和simple_tag的区别?

52、django-debug-toolbar的作用?

53、django中如何实现单元测试?

54、解释orm中 db first 和 code first的含义?

55、django中如何根据数据库表生成model中的类?

56、使用orm和原生sql的优缺点?


57、简述MVC和MTV

所谓MVC就是把web应用分为模型(M),控制器(C),视图(V)三层;他们之间以一种插件似的,松耦合的方式连接在一起。

模型负责业务对象与数据库的对象(ORM),视图负责与用户的交互(页面),控制器(C)接受用户的输入调用模型和视图完成用户的请求。

                 

Django的MTV模式本质上与MVC模式没有什么差别,也是各组件之间为了保持松耦合关系,只是定义上有些许不同,Django的MTV分别代表:

      Model(模型):负责业务对象与数据库的对象(ORM)

      Template(模版):负责如何把页面展示给用户

      View(视图):负责业务逻辑,并在适当的时候调用Model和Template

      此外,Django还有一个url分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template



58、django的contenttype组件的作用?

59、谈谈你对restfull 规范的认识?

60、接口的幂等性是什么意思?

61、什么是RPC?

62、Http和Https的区别?

63、为什么要使用django rest

framework框架?

64、django rest

framework框架中都有那些组件?

65、django rest framework框架中的视图都可以继承哪些类?

66、简述 django rest

framework框架的认证流程。

67、django rest

framework如何实现的用户访问频率控制?

68、Flask框架的优势?

69、Flask框架依赖组件?

70、Flask蓝图的作用?

71、列举使用过的Flask第三方组件?

72、简述Flask上下文管理流程?

73、Flask中的g的作用?

74、Flask中上下文管理主要涉及到了那些相关的类?并描述类主要作用?

75、为什么要Flask把Local对象中的的值stack 维护成一个列表?

76、Flask中多app应用是怎么完成?

77、在Flask中实现WebSocket需要什么组件?

78、wtforms组件的作用?

79、Flask框架默认session处理机制?

80、解释Flask框架中的Local对象和threading.local对象的区别?

81、Flask中 blinker 是什么?

82、SQLAlchemy中的 session和scoped_session 的区别?

83、SQLAlchemy如何执行原生SQL?

84、ORM的实现原理?

85、DBUtils模块的作用?

86、以下SQLAlchemy的字段是否正确?如果不正确请更正:


from datetime importdatetime

fromsqlalchemy.ext.declarative

importdeclarative_base

from sqlalchemy importColumn, Integer, String, DateTime

Base = declarative_base()

class UserInfo(Base):

__tablename__ =

'userinfo'

id = Column(Integer, primary_key=

True, autoincrement=True)

name = Column(String(

64), unique=True)

ctime = Column(DateTime, default=datetime.now())


87、SQLAchemy中如何为表设置引擎和字符编码?

88、SQLAchemy中如何设置联合唯一索引?

89、简述Tornado框架的特点。

90、简述Tornado框架中Future对象的作用?

91、Tornado框架中如何编写WebSocket程序?

92、Tornado中静态文件是如何处理的?如:

93、Tornado操作MySQL使用的模块?

94、Tornado操作redis使用的模块?

95、简述Tornado框架的适用场景?

96、git常见命令作用:

97、简述以下git中stash命令作用以及相关其他命令。

98、git 中 merge 和 rebase命令 的区别。

99、公司如何基于git做的协同开发?

100、如何基于git实现代码review?

101、git如何实现v1.0 、v2.0 等版本的管理?

102、什么是gitlab?

103、github和gitlab的区别?

104、如何为github上牛逼的开源项目贡献代码?

105、git中 .gitignore文件的作用?

106、什么是敏捷开发?

107、简述 jenkins 工具的作用?

108、公司如何实现代码发布?

109、简述 RabbitMQ、Kafka、ZeroMQ的区别?

110、RabbitMQ如何在消费者获取任务后未处理完前就挂掉时,保证数据不丢失?

111、RabbitMQ如何对消息做持久化?

112、RabbitMQ如何控制消息被消费的顺序?

113、以下RabbitMQ的exchange type分别代表什么意思?如:fanout、direct、topic。

114、简述 celery 是什么以及应用场景?

115、简述celery运行机制。

116、celery如何实现定时任务?

117、简述 celery多任务结构目录?

118、celery中装饰器 @app.task 和 @shared_task的区别?

119、简述 requests模块的作用及基本使用?

120、简述 beautifulsoup模块的作用及基本使用?

121、简述 seleninu模块的作用及基本使用?

122、scrapy框架中各组件的工作流程?

123、在scrapy框架中如何设置代理(两种方法)?

124、scrapy框架中如何实现大文件的下载?

125、scrapy中如何实现限速?

126、scrapy中如何实现暂定爬虫?

127、scrapy中如何进行自定制命令?

128、scrapy中如何实现的记录爬虫的深度?

129、scrapy中的pipelines工作原理?

130、scrapy的pipelines如何丢弃一个item对象?

131、简述scrapy中爬虫中间件和下载中间件的作用?

132、scrapy-redis组件的作用?

133、scrapy-redis组件中如何实现的任务的去重?

134、scrapy-redis的调度器如何实现任务的深度优先和广度优先?

135、简述 vitualenv 及应用场景?

136、简述 pipreqs 及应用场景?

137、在Python中使用过什么代码检查工具?

138、简述 saltstack、ansible、fabric、puppet工具的作用?

139、B Tree和B+ Tree的区别?

140、请列举常见排序并通过代码实现任意三种。

141、请列举常见查找并通过代码实现任意三种。

142、请列举你熟悉的设计模式?

143、有没有刷过leetcode?

144、列举熟悉的的Linux命令。

145、公司线上服务器是什么系统?

146、解释 PV、UV 的含义?

147、解释 QPS的含义?

148、uwsgi和wsgi的区别?

149、supervisor的作用?

150、什么是反向代理?

151、简述SSH的整个过程。

152、有问题都去那些找解决方案?

153、是否有关注什么技术类的公众号?

154、最近在研究什么新技术?

155、是否了解过领域驱动模型?

统计:80 + 34 + 46 + 155 = 315题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • 用于python面试整理,主要来源于http://www.cnblogs.com/skiler/p/6952707...
    十里江城阅读 2,319评论 0 13
  • 1.python中大文件是如何读取的? (1)读取几个G的文件时,可以利用生成器generator。 (2)rea...
    Super_Jason_one阅读 1,960评论 2 36
  • 1.python字符串格式化中,%s和.format的主要区别是什么 python用一个tuple将多个值传递给模...
    _Caesar阅读 6,787评论 11 261
  • 岳麓山峦雨雾开,湘江两岸带轻霾。 群船竞进穿南北,众鸟争鸣跃去来。 碧水横波接广宇,激流耸翠掩楼台。 洲头巨塑前留...
    海1619阅读 242评论 1 7
  • 最近很流行一句话:没有什么问题是一顿火锅解决不了的,如果有,那就两顿! 吃,是一件很重要的事情...
    亲爱的小鱼老师阅读 856评论 1 4