怒肝 200 道 Python 面试题,我悟了!

Posted Rocky0429

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怒肝 200 道 Python 面试题,我悟了!相关的知识,希望对你有一定的参考价值。

大家好,我是 Rocky0429。


对于 Python 的学习,很多小伙伴和我说不知道自己现在什么水平,也不知道现在自己算是到了哪个阶段。其实很简单,那句话怎么说来着,实践是检验真理的唯一标准。怎么实践呢?我感觉就是去面试。


很多同学可能一听面试,就慌忙摇头,觉得自己的水准还不到能面试的时候。可是哪有你想的那么复杂,面试无非就是去问你一些问题,你来回答。回答的上来就过,回答不上来就回去接着学。这就和我们从小到大在学校里,上课被老师提问一样,我们每个人都应该是面试强者才对。


下面我给大家整理了 200 道 Python 面试题,大家可以自行检验一下(整理这些我的肝都要裂了…)

由于字数太多,所以只分类给出了面试题目,每道题的答案看文末


Python 基础(共 42 道)

1、什么是 Python?

2、赋值、浅拷贝和深拷贝的区别?

3、init 和new的区别?

4、Python 的变量、对象以及引用?

5、创建百万级实例如何节省内存?

6、Python 里面如何生成随机数?

7、Python 是强语言类型还是弱语言类型?

8、谈一下什么是解释性语言,什么是编译性语言?

9、Python 中有日志吗?怎么使用?

10、Python 是如何进行类型转换的?

11、Python 中的作用域?

12、什么是 Python 自省?

13、什么是 Python 的命名空间?

14、你所遵循的代码规范是什么?

15、关于 Python 程序的运行方面,有什么手段能提升性能?

16、dict 的 items() 方法与 iteritems() 方法的不同?

17、os.path和sys.path的区别?

18、4G 内存怎么读取一个 5G 的数据?

19、输入某年某月某日,判断这一天是这一年的第几天?

20、说明一下 os.path 和 sys.path 分别代表什么?

21、Python 中的 os 模块常见方法?

22、说一下字典和 json 的区别?

23、什么是可变、不可变类型?

24、存入字典里的数据有没有先后排序?

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

26、如何理解 Python 中字符串中的\\字符?

27、常用的 Python 标准库都有哪些?

28、如何在 Python 中管理内存?

29、介绍一下 except 的作用和用法?

30、在 except 中 return 后还会不会执行 finally 中的代码?怎么
抛出自定义异常?

31、read、readline 和 readlines 的区别?

32、range 和 xrange 的区别?

33、请简述你对 input()函数的理解?

34、代码中要修改不可变数据会出现什么问题?抛出什么异常?

35、print 调用 Python 中底层的什么方法?

36、Python 的 sys 模块常用方法?

37、unittest 是什么?

38、模块和包是什么?

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

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

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

42、“一行代码实现 xx”类题目


Python 进阶(共 47 题)

1、Python 中类方法、类实例方法、静态方法有何区别?

2、Python 的内存管理机制及调优手段?

3、内存泄露是什么?如何避免?

4、Python 函数调用的时候参数的传递方式是值传递还是引用传递?

5、对缺省参数的理解?

6、为什么函数名字可以当做参数用?

7、Python 中 pass 语句的作用是什么?

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

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

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

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

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

13、简述 Python 在异常处理中,else 和 finally 的作用分别是什么?

14、map 函数和 reduce 函数?

15、递归函数停止的条件?

16、回调函数,如何通信的?

17、 _setattr__,_getattr,__delattr函数使用详解?

18、请描述抽象类和接口类的区别和联系?

19、请描述方法重载与方法重写?

20、什么是 lambda 函数? 有什么好处?

21、单例模式的应用场景有哪些?

22、什么是闭包?

23、什么是装饰器?

24、函数装饰器有什么作用?

25、生成器、迭代器的区别?

26、多线程交互,访问数据,如果访问到了就不访问了,怎么避免重读?

27、Python 中 yield 的用法?

28、谈下 python 的 GIL?

29、Python 中的可变对象和不可变对象?

30、一句话解释什么样的语言能够用装饰器?

31、Python 中 is 和==的区别?

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

33、Python 里 match 与 search 的区别?

34、用 Python 匹配 html g tag 的时候,<.> 和 <.?> 有什么区别?

35、Python 中的进程与线程的使用场景?

36、解释一下并行(parallel)和并发(concurrency)的区别?

37、如果一个程序需要进行大量的 IO 操作,应当使用并行还是并发?

38、如果程序需要进行大量的逻辑运算操作,应当使用并行还是并发?

39、在 Python 中可以实现并发的库有哪些?

40、Python 如何处理上传文件?

41、请列举你使用过的 Python 代码检测工具?

42、python 程序中文输出问题怎么解决?

43、Python 如何 copy 一个文件?

44、如何用Python删除一个文件?

45、如何用 Python 来发送邮件?

46、当退出 Python 时,是否释放全部内存?

47、什么是猴子补丁?


Python 后台开发(共 44 题)

Flask

1、Flask 中请求上下文和应用上下文的区别和作用?

2、对 Flask 蓝图(Blueprint)的理解?

3、Flask 项目中如何实现 session 信息的写入?

4、项目接口实现后路由访问不到怎么办?

5、Flask 中 url_for 函数?

6、Flask 中请求钩子的理解和应用?

7、一个变量后写多个过滤器是如何执行的?

8、如何把整个数据库导出来,再导入指定数据库中?

9、Flask 和 Django 路由映射的区别?

10、跨站请求伪造和跨站请求保护的实现?

11、Flask(name)中的name可以传入哪些值?


Django

1、Django 创建项目的命令?

2、Django 创建项目后,项目文件夹下的组成部分(对 mvt 的理解)?

3、对 MVC,MVT 解读的理解?

4、Django 中 models 利用 ORM 对 mysql 进行查表的语句(多个语句)?

5、django 中间件的使用?

6、Django 项目的优化?

7、谈一下你对 uWSGI 和 nginx 的理解?

8、说说 nginx 和 uWISG 服务器之间如何配合工作的?

9、django 开发中数据库做过什么优化?

10、验证码过期时间怎么设置?

11、Python 中 Django、Flask、Tornado 三大框架各自的应用场景?

12、django 如何提升性能?

13、什么是 restful api,谈谈你的理解?

14、启动 Django 服务的方法?

15、怎样测试 django 框架中的代码?

16、有过部署经验?用的什么技术?可以满足多少压力?

17、Django 中哪里用到了线程?哪里用到了协程?哪里用到了进程?

18、django 关闭浏览器,怎样清除 cookies 和 session?

19、代码优化从哪些方面考虑?有什么想法?

20、Django 中间件是如何使用的?

21、ngnix 的正向代理与反向代理?

22、简述 Django 下的(内建的)缓存机制?

23、Django HTTP 请求的处理流程?

24、Django 里 QuerySet 的 get 和 filter 方法的区别?

25、跨域请求问题 django 怎么解决的?

26、Django 对数据查询结果排序怎么做,降序怎么做,查询大于某个字段怎么做?

27、Django 重定向你是如何实现的?用的什么状态码?

28、生成迁移文件和执行迁移文件的命令是什么?

29、关系型数据库的关系包括哪些类型?

30、查询集返回列表的过滤器有哪些?

31、Django 本身提供了 runserver,为什么不能用来部署?

32、HttpRequest 和 HttpResponse 是什么?干嘛用的?

33、Django 日志管理?


爬虫(共 35 题)

常见问题

1、爬取数据后使用哪个数据库存储数据的,为什么?

2、你用过的爬虫框架或者模块有哪些?谈谈他们的区别或者优缺点?

3、写爬虫是用多进程好?还是多线程好? 为什么?

4、常见的反爬虫和应对方法?

5、需要登录的网页,如何解决同时限制 ip,cookie,session(其中有一些是动态生成的)在不使用动态爬取的情况下?

6、验证码的解决?

7、使用最多的数据库(Mysql,Mongodb,redis 等),对他们的理解?

8、写一个邮箱地址的正则表达式?

9、如何定时启动你的爬虫项目?

10、爬的那些内容数据量有多大,多久爬一次,爬下来的数据是怎么存储?

11、cookie 过期的处理问题?

12、动态加载又对及时性要求很高怎么处理?

13、谈一谈你对 Selenium 和 PhantomJS 了解?

14、代理 IP 里的“透明”“匿名”“高匿”分别是指?

15、robots 协议有什么用处?

16、为什么 requests 请求需要带上 header?

17、dumps,loads 与 dump,load 的区别?

18、平常怎么使用代理的?

19、IP 存放在哪里?怎么维护 IP?对于封了多个 ip 的,怎么判定 IP 没被封?

20、怎么获取加密的数据?

21、假如每天爬取量在 5、6 万条数据,一般开几个线程,每个线程 ip 需要加锁限定吗?

22、怎么监控爬虫的状态?


框架

1、描述下 scrapy 框架运行的机制?

2、谈谈你对 Scrapy 的理解?

3、什么是增量爬取?

4、爬虫向数据库存数据开始和结束都会发一条消息,是 scrapy 哪个模块实现的?

5、爬取下来的数据如何去重,说一下具体的算法依据?

6、Scrapy 的优缺点?

7、什么是 scrapy-redis 中的指纹?是如何去重的?

8、怎么设置深度爬取?

9、scrapy 和 scrapy-redis 有什么区别?为什么选择 redis 数据库?

10、分布式爬虫主要解决什么问题?

11、什么是反向代理?作用是什么?

12、什么是分布式存储?

13、你所知道的分布式爬虫方案有哪些?


机器学习(共 32 题)

1、什么是机器学习?

2、机器学习与数据挖掘的区别?

3、什么是机器学习的过度拟合现象?过度拟合产生的原因?如何避免过拟合问题?

4、什么是机器学习的欠拟合?如何避免欠拟合问题?

5、解释有监督和无监督机器学习之间的区别?

6、偏差和方差之间的权衡是什么?

7、解释 KNN 和 k-means 聚类之间的区别?

8、什么是贝叶斯定理?我们为什么用它?

9、什么是朴素贝叶斯分类器?我们为什么要使用它们?

10、判别模型和生成模型之间有什么区别?

11、什么是参数模型?提供一个例子

12、如何根据训练集大小选择分类器?

13、解释ROC曲线和AUC?

14、如何确保您不会过度拟合模型?

15、说明如何处理数据集中的丢失或损坏的数据?

16、解释如何开发数据管道?

17、如何解决模型中的高方差?

18、什么是超参数?它们与模型参数有何不同?

19、你正在处理数据集。如何选择重要变量?

20、为什么 XGBoost 的性能优于 SVM?

21、以下混淆矩阵的召回率,特异性和精确度是多少?

22、使用 scikit-learn 时,是否确实需要在特征值变化很大时调整特征值?

23、你的数据集有 50 个变量,但是8个变量的缺失值高于 30%。如何解决这个问题?

24、协方差和相关性有什么区别?

25、你认为把分类变量当成连续型变量会得到一个更好的预测模型吗?

26、在 K-means 或者 KNN,我们是用欧氏距离来计算最近的邻居之间的距离,为什么不用曼哈顿距离?

27、给你一个数据集,这个数据集有缺失值,且这些缺失值分布在高中值有1一个标准偏差的的范围内,百分之多少的数据不会受到影响?为什么?

28、线程分类器与非线性分类器的区别以及优劣?

29、文本中的余弦距离是什么,有哪些作用?

30、什么是数据埋点?

31、请简要说说一个完整的机器学习项目流程?

32、我们知道,独热编码(OneHotEncoder)会增加数据集的维度。但是标签编码(LabelEncoder)不会。为什么?


所以,你 Python 面试准备的如何?反正肝了这份面试题之后,我的 Python 又上了一个台阶了。


为了方便各位小伙伴能够复习自己不懂的面试题,我把这些面试题的答案整理成了 PDF,免费送给大家,只求大家能够一键三连,给大家看一下目录,保证方便复习!


在这里插入图片描述

打开具体目录长这样

在这里插入图片描述

无论是为了复习,还是为了面试抑或是为了验证自己 Python 学的如何,这份面试题肯定可以助你一臂之力滴,大家可以在我的公众号 「Python空间」后台回复「Python面试之道」就可以获取这份面试题的 PDF 版本了。


如果觉得有帮助,希望一键三连,多多支持我呀~


作者Info:

【作者】:Rocky0429
【原创公众号】:Python空间。
【简介】:CSDN 博客专家, 985 计算机在读研究生,ACM 退役狗 & 亚洲区域赛银奖划水选手。这是一个坚持原创的技术公众号,每天坚持推送各种 Python 基础/进阶文章,数据分析,爬虫实战,数据结构与算法,不定期分享各类资源。
【福利】:送你新人大礼包一份,关注微信公众号,后台回复:“CSDN” 即可获取!
【转载说明】:转载请说明出处,谢谢合作!~

以上是关于怒肝 200 道 Python 面试题,我悟了!的主要内容,如果未能解决你的问题,请参考以下文章

怒肝 200 道 Python 面试题,我悟了!

VIVO一面竟然翻车,含泪整理了这些Java面经,看完我悟了

读完《演进式架构》我悟了!!!

读完《演进式架构》我悟了!!!

统计了300位硬件工程师的工资,我悟了

统计了300位硬件工程师的工资,我悟了