Python 相关面试题

Linux https://pythonav.com/wiki/detail/3/57/ 答案

答案

【转+整理+答案】python315+道面试题

315道Python面试题答案

python企业面试题集锦

第一部分 Python基础篇

  1. 为什么学习Python

    简单,酷。相对于java代码较为简洁。

  2. 通过什么途径学习Python

    买点视频,看文档,看书啊,练习,练习,练习,

  3. 谈谈对Python和其他语言的区别

    Python 是 解释性语言,跨平台。

    java 编译型语言,依赖于JVM跨平台,先编译为字节码文件,JVM解释执行

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

    解释型,解释一句,执行一句

    编译型,编译为机器码,直接执行

  5. python的解释器种类以及相关特点?

    CPython,常用的解释器,有GIL的

    IPython,交互式的CPython

    PyPy,追求速度的解释器,采用JIT技术,动态编译

    JPython,在JAVA平台的解释器,可以编译为JAVA字节码文件交给JVM执行

    IronPython,在微软.Net平台的解释器,可以编译为.Net字节码文件执行

  6. 位和字节的关系

    位,bit,计算机数据存储的最小单位 ,一个二进制位只能表示为01两种状态

    字节,byte,B, 1Byte = 8bit,一个ASCI码一个字节,一个中文汉字

    字,在计算机中,一串数码作为一个整体来处理或运算的,称为一个计算机字,简称宇。字通常分为若干个字节(每个字节一般是8位)。在存储器中,通常每个单元存储一个字,因此每个字都是可以寻址的。字的长度用位数来表示。

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

    1GB = 2^10MB = 2^20KB = 2^30B = 2^40b

  8. PE8规范

    缩进,空格,空行,命名,import,

    参考

  9. 通过代码实现如下转换(进制之间转换)

    oct,bin,hex,int

  10. python2如何迁移到python3

    1. 2to3模块 官方模块
  11. 请编写一个函数实现将IP地址转换成一个整数

    字符串分割、进制转换

  12. 字符串全组合,全排列 TODO

  13. python递归的最大层数?

    998,可以通过sys.setrecursionlimit(1000000)设置

  14. 求结果(and or or)

  15. ascii、unicode、utf-8、gbk 区别

    1. 不同的编码类型
       1. ascii ,256个字符,只支持英文
       2. unicode 万国码  所有字符(无论中文、英文等)1个字符:4个字节 (utf32)
       3. utf8 , Unicode变种,英文1个字节,欧洲字符:2个字节, 亚洲: 3个字节
       4. gbk 国标,中国的编码类型  1个字符,英文1个字节,中文2个字节。
       5. [python下编译py成pyc和pyo](https://www.cnblogs.com/dkblog/archive/2009/04/16/1980757.html)
       6. java 与 Python https://blog.csdn.net/ztf312/article/details/53995636
    
  16. 为什么python慢

    1. GIL 不能利用多核资源
    2. 解释性,相较于直接执行机器码,会慢很多,(JAVA编译为字节码后再JVM解释执行,会将部分代码再次编译为机器码)
    3. 关于JIT 即时编译, just in time
      1. 深入浅出 JIT 编译器
  17. 字节码和机器码的区别

    1. C代码被编译成机器码(二进制),在机器上直接执行
    2. Cpython编译你的python源代码,生成字节码。
    3. 机器码快的多,字节码更易迁移,也安全。
    4. python的 pyc文件,经py文件编译生成,是一种byte code ,跨平台,由虚拟机解释执行
    
  18. 三元运算写法和应用场景?

    1. 三元运算符就是在赋值变量的时候,可以直接加判断,然后赋值
    2. a = b if exat else c
  19. Python3和Python2的区别?

    1. range
    2. print
    3. str
      1. py2中分ascii(8位)、unicode(16位);
      2. py3中所有字符串都是unicode字符串
  20. 用一行代码实现数值交换

    1. a,b = b,a
  21. Python3和Python2中int和long区别

    1. python3 只有int 类似 Python2 long
    2. pyhton2
      1. int sys.maxint
      2. long 长整形, 无线长度,内部 数组实现
  22. xrange和range的区别

    1. python2,xrange生成器,range 一个集合
    2. python3 ,一样效果,都是生成器
  23. 文件操作时:xreadlines和readlines的区别?

    1. 同上
  24. 列举布尔值为False的常见值?

    1. []、{}、None、’’、()、0、False
  25. 字符串、列表、元组、字典每个常用的5个方法?

    1. 字符串,isdigst(),lowwer,upper(),strip(),split()
    2. 列表 replace(),count(),index(),append(),insert()
    3. 元组index(),count()
    4. 字典 ,update(),get(),keys(),values(),items(),clear()
  26. lambda表达式格式以及应用场景?

    1. f = lambda x : x+1
    2. 与内置函数一起使用,一般定义调用一次
  27. pass的作用

    1. Pass一般用于站位语句,保持代码的完整性,不会做任何操作。
  28. *arg和**kwarg作用

    1. 他们是一种动态传参,一般不确定需要传入几个参数时,可以使用其定义参数,然后从中取参
    2. '*args':按照位置传参,将传入参数打包成一个‘元组’(打印参数为元组-- tuple)
    3. '**kwargs':按照关键字传参,将传入参数打包成一个‘字典’(打印参数为字典-- dict)
  29. is和==的区别

    1. is 比较内存地址,唯一标值 id()
    2. ==比较值
  30. 谈谈Python的深浅拷贝?以及实现方法和应用场景。

    1. #浅拷贝:
      不管多么复杂的数据结构,只copy对象最外层本身,该对象引用的其他对象不copy,
      内存里两个变量的地址是一样的,一个改变另一个也改变。
      #深拷贝:
      完全复制原变量的所有数据,内存中生成一套完全一样的内容;只是值一样,内存地址不一样,一方修改另一方不受影响
      
    2. 小数据池中的数据不拷贝

  31. Python垃圾回收机制?

    1. 以引用计数机制为主,分代处理后使用标记清除机制处理重复引用
    
  32. Python的可变类型和不可变类型?

    1. 可变数据类型,[],{},{}
    2. 不可变数据类型,(),str,int
  33. 列举常见的内置函数
    abs()
    map
    filter
    map与filter总结
    isinstance\type
    zip 拉链函数

  34. filter、map、reduce的作用? 内置函数:map、reduce、filter的用法和区别

    1. # map:遍历序列,为每一个序列进行操作,获取一个新的序列
      # reduce:对于序列里面的所有内容进行累计操作
      # filter:对序列里面的元素进行筛选,最终获取符合条件的序列
      
  35. 一行代码实现9*9乘法表

    1. print('\n'.join(['\t'.join(['{}*{}={}'.format(j, i, i * j) for j in range(1, i + 1)]) for i in range(1, 10)]))
  36. 如何安装第三方模块?以及用过哪些第三方模块?

    1. pip install request
  37. yield 与 yield from

    1. yield from 可以从另一个迭代器,返回值
      2. 可以帮我们处理一些异常等
    
  38. 常用模块都有那些?

    1. os,sys,re,time,random,json
  39. re的match和search区别?

    1. math,从字符串起始位置开始匹配,如果没有就返回None
    2. search,从字符串的起始位置开始匹配,匹配到第一个符合的就不会再去匹配了
  40. 什么是正则的贪婪匹配?

    1. a.*a ,匹配 所有字符
    2. a.?*a, 匹配到就结束
  41. def func(a,b=[]) 这种写法有什什么坑?

    1. 可变类型作为参数,如果每个参数都传值了没问题,如果可变类型没有传递参数他将会一直使用一个容器
  42. 如何实现 “1,2,3” 变成 [‘1’,’2’,’3’]

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

  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. 如何在函数中设置一个全局变量

    1. global
  48. logging模块的作用?以及应用场景?

    1. 管理我们程序的执行日志,省去用print记录操作日志的操作,并且可以将标准输入输出保存到日志文件
    2. 爬虫爬取数据时,对爬取进行日志记录,方便分析、排错。
  49. 请用代码简答实现stack

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

    1. %s
    2. format
  51. 简述 生成器、迭代器、可迭代对象 以及应用场景?

    1. 简述 生成器、迭代器、可迭代对象 以及应用场景?
      Python可迭代对象(Iterable)
      Python中经常使用for来对某个对象进行遍历,此时被遍历的这个对象就是可迭代对象,像常见的list,tuple都是。<br>如果给一个准确的定义的话,就是只要它定义了可以返回一个迭代器的__iter__方法,或者定义了可以支持下标索引的__getitem__方法<br>,那么它就是一个可迭代对象。
       
      Python迭代器(iterator)
      迭代器是通过next()来实现的,每调用一次他就会返回下一个元素,当没有下一个元素的时候返回一个StopIteration异常,<br>所以实际上定义了这个方法的都算是迭代器。
      
      生成器(Generators)
      生成器是构造迭代器的最简单有力的工具,与普通函数不同的只有在返回一个值的时候使用yield来替代return,然后yield会自动构建好next()和iter()
       
      因为迭代器如此普遍,python专门为for关键字做了迭代器的语法糖。在for循环中,Python将自动调用工厂函数iter()获得迭代器,<br>自动调用next()获取元素,还完成了检查StopIteration异常的工作。
      
  52. 用Python实现一个二分查找的函数。

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

    1. 在函数内部再定义一个函数,并且这个函数用到了外边函数的变量,那么将这个函数以及用到的一些变量称之为闭包。
  54. os和sys模块的作用?

    1. # os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口;
      # sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python运行环境
      
  55. 如何生成一个随机数?

    1. random.random()
  56. 如何使用python删除一个文件?

    1. os.remove()
  57. 谈谈你对面向对象的理解

    1. #封装:
         其实就是将很多数据封装到一个对象中,类似于把很多东西放到一个箱子中,
         如:一个函数如果好多参数,起始就可以把参数封装到一个对象再传递。
      #继承:
         如果多个类中都有共同的方法,那么为了避免反复编写,就可以将方法提取到基类中实现,
         让所有派生类去继承即可。
      #多态:
         指基类的同一个方法在不同派生类中有着不同功能。python天生支持多态。
      
      
  58. Python面向对象中的继承有什么特点

    1. 多继承 ,C3算法
  59. 面向对象中super的作用?

    1. 主要在子类继承父类的所有属性和方法时来使用
  60. 是否使用过functools中的函数?其作用是什么?

    1. partical 偏函数
    2. cpm ,比较器
    3. wraps 装饰器
  61. 列举面向对象中带双下划线的特殊方法,如:__new__、__init__

    1. __str__
      __new__
      __init__
      __iter__
      __call__
      
      
  62. 如何判断是函数还是方法?

    1. # 看他的调用者是谁,如果是类,需要传入参数self,这时就是一个函数;
      # 如果调用者是对象,不需要传入参数值self,这时是一个方法。
      (FunctionType/MethodType)
      
      
  63. 静态方法和类方法区别?

    1. 类方法:是类对象的方法,在定义时需要在上方使用“@classmethod”进行装饰,形参为cls,
      表示类对象,类对象和实例对象都可调用。
      静态方法:是一个任意函数,在其上方使用“@staticmethod”进行装饰,可以用对象直接调用,
      静态方法实际上跟该类没有太大关系。
      
      
  64. 列举面向对象中的特殊成员以及应用场景

    1. 等同于 对象中的 双下滑线方法
  65. 1、2、3、4、5 能组成多少个互不相同且无重复的三位数

    1. 排列数
  66. 什么是反射?以及应⽤用场景?

    1. 反射就是以字符串的方式导入模块,以字符串的方式执行函数
      # 应用场景:
         rest framework里面的CBV
      
      
  67. metaclass作用?以及应用场景?

    1. 元类,用于 new 类 元类
  68. 用尽量多的方法实现单例模式

    1. 装饰器,元类, new

    import threading
    
    
    class Singleton(object):
        _lock = threading.Lock()
    
        def __new__(cls, *args, **kwargs):
            with Singleton._lock:
                if not hasattr(Singleton, '_instance'):
                    Singleton._instance = object.__new__(cls)
            return Singleton._instance
    
    
    
  69. 装饰器器的写法以及应用场景。

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

  71. 什么是面向对象的mro

    1. 方法解析顺序,按照对象中的MRO表寻找方法,由C3算法完成MRO
  72. isinstance作用以及应用场景?

    1. 判断一个是否是另外一个类的子类
  73. json序列化时,可以处理的数据类型有哪些?如何定制支持datetime类型?

    1. 字典、列表、数字、字符串、元组;如果是元组,自动转成列表(再转回去的话也是列表)
  74. json序列化时,默认遇到中文会转换成unicode,如果想要保留中文怎么办?

    1. a=json.dumps({"xxx":"你好"},ensure_ascii=False)
      
      
  75. 什么是断言?应用场景?

    1. # 条件成立则继续往下,否则抛出异常;
      # 一般用于:满足某个条件之后,才能执行,否则应该抛出异常。
      '应用场景':rest framework中GenericAPIView类里,要设置queryset,否则断言错误
      
      
  76. 有用过with statement吗?它的好处是什么?

    1. with open

    2. with语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,
      释放资源,比如文件使用后自动关闭、线程中锁的自动获取和释放等。
      
      
  77. 使用代码实现查看列举目录下的所有文件

    1. path = os.listdir('.') #查看列举目录下的所有文件。
  78. 简述 yield和yield from关键字

    1. yield 就是保存当前程序执行状态。你用for 循环的时候,每次取一个元素的时候就会计算一次。用yield 的函数叫generator,和iterator 一样,它的好处是不用一次计算所有元素,而是用一次算一次,可以节省很多空间。generator每次计算需要上一次计算结果,所以用yield,否则一return,上次计算结果就没了。

第二部分 网络编程和并发 todo

  1. 简述 OSI 七层协议。
  2. 什么是C/S和B/S架构?
  3. 简述 三次握手、四次挥手的流程。
  4. TCP和UDP的区别?
  5. 为何基于tcp协议的通信比基于udp协议的通信更可靠?
  6. 什么是socket?简述基于tcp协议的套接字通信流程。
  7. 什么是粘包? socket 中造成粘包的原因是什什么? 哪些情况会发生粘包现象?
  8. IO多路复的作用?
  9. select、poll、epoll 模型的区别?(属于多路复用IO的模型)
  10. 什么是防火墙以及作用?
  11. 简述 进程、线程、协程的区别 以及应用场景?
  12. GIL锁是什么?
  13. Python中如何使用线程池和进程池?
  14. threading.local的作用?
  15. 进程之间如何进行通信?
  16. 什么是并发和并行?
  17. 进程锁和线程锁的作用?
  18. 解释什么是异步非阻塞?
  19. 路由器和交换机的区别
  20. 什么是域名解析?
  21. 如何修改本地hosts件?
  22. 生产者消费者模型应用场景及优势?
  23. 什么是cdn?
  24. LVS是什么及作用?
  25. Nginx是什么及作用?
  26. keepalived是什么及作用?
  27. haproxy是什么以及作用?

数据库和缓存(46题)

  1. 列举常见的关系型数据库和非关系型都有那些?
  2. MySQL常见数据库引擎及比较?
  3. 简述数据库三大范式?
  4. 什么是事务?MySQL如何支持事务?
  5. 简述数据库设计中一对多和多对多的应用场景?
  6. 如何基于数据库实现商城商品计数器?
  7. 常见SQL(必备)
  8. 简述触发器、函数、视图、存储过程?
  9. MySQL索引种类
  10. 索引在什么情况下遵循最左前缀的规则?
  11. 主键和外键的区别?
  12. MySQL常见的函数?
  13. 列举 创建索引但是无法命中索引的8种情况。
  14. 如何开启慢日志查询?
  15. 数据库导入导出命令(结构+数据)?
  16. 数据库优化方案?
  17. char和varchar的区别?
  18. 简述MySQL的执行计划?
  19. 在对name做了唯一索引前提下,简述以下区别:
  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中所有以aaa开头的key?

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

  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. 看图写结果(js):
    看图写结果(js):
    看图写结果:(js)
    看图写结果:(js)
    看图写结果:(js)
    看图写结果:(js)
  19. django、flask、tornado框架的比较?
  20. 什么是wsgi?
  21. django请求的生命周期?
  22. 列举django的内置组件?
  23. 列举django中间件的5个方法?以及django中间件的应用场景?
  24. 简述什么是FBV和CBV?
  25. FBV与CBV的区别
  26. django的request对象是在什么时候创建的?
  27. 如何给CBV的程序添加装饰器?
  28. 列举django orm 中所有的方法(QuerySet对象的所有方法)
  29. only和defer的区别?
  30. select_related和prefetch_related的区别?
  31. filter和exclude的区别?
  32. 列举django orm中三种能写sql语句的方法。
  33. django orm 中如何设置读写分离?
  34. F和Q的作用?
  35. values和values_list的区别?
  36. 如何使用django orm批量创建数据?
  37. django的Form和ModeForm的作用?
  38. django的Form组件中,如果字段中包含choices参数,请使用两种方式实现数据源实时更新。
  39. django的Model中的ForeignKey字段中的on_delete参数有什么作用?
  40. django中csrf的实现机制?
  41. django如何实现websocket?
  42. 基于django使用ajax发送post请求时,都可以使用哪种方法携带csrf token?
  43. django中如何实现orm表中添加数据时创建一条日志记录。
  44. django缓存如何设置?
  45. django的缓存能使用redis吗?如果可以的话,如何配置?
  46. django路由系统中name的作用?
  47. django的模板中filter和simple_tag的区别?
  48. django-debug-toolbar的作用?
  49. django中如何实现单元测试?
  50. 解释orm中 db first 和 code first的含义?
  51. django中如何根据数据库表生成model中的类?
  52. 使用orm和原生sql的优缺点?
  53. 简述MVC和MTV
  54. django的contenttype组件的作用?
  55. 谈谈你对restfull 规范的认识?
  56. 接口的幂等性是什么意思?
  57. 什么是RPC?
  58. Http和Https的区别?
  59. 为什么要使用django rest framework框架?
  60. django rest framework框架中都有那些组件?
  61. django rest framework框架中的视图都可以继承哪些类
  62. 简述 django rest framework框架的认证流程。
  63. django rest framework如何实现的用户访问频率控制?
  64. Flask框架的优势?
  65. Flask框架依赖组件
  66. Flask蓝图的作用
  67. 列举使用的Flask第三方组件?
  68. 简述Flask上下文管理流程?
  69. Flask中的g的作用?
  70. Flask中上下文管理主要涉及到了那些相关的类?并描述类主要作用?
  71. 为什么要Flask把Local对象中的的值stack 维护成一个列表?
  72. Flask中多app应用是怎么完成?
  73. 在Flask中实现WebSocket需要什么组件?
  74. wtforms组件的作用?
  75. Flask框架默认session处理机制?
  76. 解释Flask框架中的Local对象和threading.local对象的区别?
  77. Flask中 blinker 是什么?
  78. SQLAlchemy中的 session和scoped_session 的区别?
  79. SQLAlchemy如何执行原生SQL?
  80. ORM的实现原理?
  81. DBUtils模块的作用?
  82. SQLAchemy中如何为表设置引擎和字符编码?
  83. SQLAchemy中如何设置联合唯一索引?
  84. 简述Tornado框架的特点。
  85. 简述Tornado框架中Future对象的作用?
  86. Tornado框架中如何编写WebSocket程序?
  87. Tornado中静态文件是如何处理的?
如:
  88. Tornado操作MySQL使用的模块?
  89. Tornado操作redis使用的模块?
  90. 简述Tornado框架的适用场景?
  91. git常见命令作用:
  92. 简述以下git中stash命令作用以及相关其他命令。
  93. git 中 merge 和 rebase命令 的区别。
  94. 公司如何基于git做的协同开发?
  95. 如何基于git实现代码review?
  96. git如何实现v1.0 、v2.0 等版本的管理?
  97. 什么是gitlab
  98. github和gitlab的区别?
  99. 如何为github上牛逼的开源项目贡献代码?
  100. git中 .gitignore文件的作用
  101. 什么是敏捷开发?
  102. 简述 jenkins 工具的作用?
  103. 公司如何实现代码发布?
  104. 简述 RabbitMQ、Kafka、ZeroMQ的区别?
  105. RabbitMQ如何在消费者获取任务后未处理完前就挂掉时,保证数据不丢失?
  106. RabbitMQ如何对消息做持久化?
  107. RabbitMQ如何控制消息被消费的顺序?
  108. 以下RabbitMQ的exchange type分别代表什么意思?如:fanout、direct、topic。
  109. 简述 celery 是什么以及应用场景?
  110. 简述celery运行机制。
  111. celery如何实现定时任务?
  112. 简述 celery多任务结构目录
  113. celery中装饰器 @app.task 和 @shared_task的区别?
  114. 简述 requests模块的作用及基本使用?
  115. 简述 beautifulsoup模块的作用及基本使用?
  116. 简述 seleninu模块的作用及基本使用?
  117. scrapy框架中各组件的工作流程?
  118. 在scrapy框架中如何设置代理(两种方法)?
    1. 中间件
    2. 环境变量(os.environ['HTTPS_PROXY'] = 'https:ip:port')
  119. scrapy框架中如何实现大文件的下载?
  120. scrapy中如何实现限速?
    1. DOWNLOAD_DELAY = 1
  121. 如何提升爬虫的效率
    1. 线程池
    2. scrapy配置文件相关配置(禁用cookie,禁止重试,减小下载超时,增加并发,日志等级)
  122. scrapy中如何实现暂停爬虫?
    1. 分布式直接停止就可以
    2. 普通
      1. JOBDIR='sharejs.com'
      2. control-C
  123. scrapy中如何进行自定制命令?
  124. scrapy中如何实现的记录爬虫的深度?
  125. scrapy中的pipelines工作原理?
  126. scrapy的pipelines如何丢弃一个item对象?
    1. yield item 在spider 中判断
    2. item.class 在pipeline 中放弃持久化操作
  127. 简述scrapy中爬虫中间件和下载中间件的作用?
  128. scrapy-redis组件的作用?
  129. scrapy-redis组件中如何实现的任务的去重?
  130. scrapy-redis的调度器如何实现任务的深度优先和广度优先?....
    1. DEPTH_PRIORITY = 1
    2. SCHEDULER_DISK_QUEUE = 'scrapy.squeues.PickleFifoDiskQueue'
    3. SCHEDULER_MEMORY_QUEUE = 'scrapy.squeues.FifoMemoryQueue'
    4. 广度优先:不全部保留结点,占用空间少;运行速度慢
    5. 深度优先:保留全部结点,占用空间大;运行速度快
    6. https://www.cnblogs.com/zhaof/p/7092400.html
  131. 简述 vitualenv 及应用场景?
  132. 简述 pipreqs 及应用场景?
  133. 在Python中使用过什么代码检查工具?
  134. 简述 saltstack、ansible、fabric、puppet工具的作用?
  135. B Tree和B+ Tree的区别?
  136. 请列举常见排序并通过代码实现任意三种。
  137. 请列举常见查找并通过代码实现任意三种。
  138. 请列举你熟悉的设计模式?
  139. 有没有刷过leetcode?
  140. 列举熟悉的的Linux命令。
  141. 公司线上服务器是什么系统?
  142. 解释 PV、UV 的含义?
  143. 解释 QPS的含义?
  144. uwsgi和wsgi的区别?
  145. supervisor的作用?
  146. 什么是反向代理?
  147. 简述SSH的整个过程。
  148. 有问题都去那些找解决方案?
  149. 是否有关注什么技术类的公众号?
  150. 最近在研究什么新技术?
  151. 是否了解过领域驱动模型?
  152. 二进制与十进制之间的转换
  153. 整数部分
posted @ 2019-10-06 23:38  写bug的日子  阅读(138)  评论(0)    收藏  举报