Python程序员面试笔试宝典
作者:猿媛之家,辛晓婷,李华荣等
出版时间:2020年版
内容简介
《Python程序员面试笔试宝典》是一本讲解Python程序员面试笔试的百科全书,在写法上,除了讲解如何解答Python程序员面试笔试问题以外,还引入了相关知识点辅以说明,让读者能够更加容易理解。 《Python程序员面试笔试宝典》将Python程序员面试笔试过程中各类知识点一网打尽,在广度上,通过各种渠道,搜集了近3年几乎所有IT企业针对Python岗位的笔试、面试涉及的知识点,包括但不限于Python基础与高级知识点、数据库、数据结构与算法、Python与爬虫、Python与数据分析和机器学习相关的知识点。所选择知识点均为企业招聘考查的知识点。在讲解的深度上,本书由浅入深地分析每一个知识点,并提炼归纳,同时,引入相关知识点,并对知识点进行深度剖析,让读者不仅能够理解这个知识点,还能在遇到相似问题时也能游刃有余地解决,而这些内容是其他同类书籍所没有的。本书根据知识点进行归纳分类,结构合理,条理清晰,对于读者进行学习与检索意义重大。 《Python程序员面试笔试宝典》是一本计算机相关专业毕业生面试、笔试的求职用书,同时也适合期望在计算机软、硬件行业大显身手的计算机爱好者阅读。
目录
前言
第1章 求职经验分享1
1.1 Python程序员有哪些可供选择的职业发展道路?1
1.2 当前市场对于Python程序员的需求如何?待遇如何?1
1.3 当企业在招聘时,对Python程序员通常有何要求?3
1.4 要想成为一名出色的Python程序员,需要掌握哪些必备的知识?4
第2章 Python基础5
2.1 什么是Python?使用Python有什么好处?5
2.2 Python中常用的保留字有哪些?5
2.3 Python 2.x与3.x版本有哪些主要的区别?6
2.4 Python中有哪些常见的运算符?10
2.5 运算符is与= =有什么区别?13
2.6 数据类型14
2.6.1 Python都有哪些自带的数据类型?可变类型和不可变类型分别包括哪些?14
2.6.2 列表、元组、集合、字典的区别有哪些?16
2.6.3 列表和元组的区别有哪些?17
2.6.4 Python有哪些常见的数据类型转换函数?18
2.6.5 列表、元组、集合及字典之间如何相互转换?19
2.6.6 如何删除一个列表(list)中的重复元素?20
2.6.7 如何求两个列表(list)的交集、差集或并集?22
2.6.8 如何反序地迭代一个序列?23
2.6.9 列表的sort方法和sorted方法有何区别?25
2.6.10 列表中常用的方法有哪些?27
2.6.11 什么是列表生成式?29
2.6.12 字符串格式化%和.format的区别是什么?30
2.6.13 单引号、双引号和三引号的区别有哪些?31
2.6.14 Python中常用字符串函数有哪些?31
2.6.15 如何判断一个字符串是否全为数字?33
2.6.16 Python字典有哪些内置函数?34
2.6.17 字典的items()方法与iteritems()方法有什么不同?35
2.6.18 集合常见内置方法有哪些?36
2.6.19 其他37
2.7 Python中的日期和时间49
2.7.1 编写函数返回昨天的日期52
2.7.2 计算每个月的天数52
2.7.3 如何获取某月的日历?53
2.8 流程控制语句53
2.8.1 Python中pass语句的作用是什么?53
2.8.2 用程序实现斐波纳契数列53
2.8.3 Python编程中的except有哪些作用?54
2.8.4 给出一个自定义异常的示例55
2.8.5 range()函数的作用有哪些?56
2.8.6 xrange和range的区别有哪些?57
2.8.7 生成九九乘法表58
2.8.8 打印三角形59
2.8.9 简单计算器60
2.8.10 1,2,3,4,5能组成多少个互不相同的无重复的三位数?请用程序分别列出61
2.8.11 判断用户输入的年份是否为闰年62
2.8.12 编写一个函数判断用户输入的数值是否为质数62
2.9 collections模块63
2.9.1 如何获取一个字符串中某个字符的个数?63
2.9.2 deque的作用是什么?64
2.9.3 defaultdict的作用是什么?64
2.9.4 OrderedDict的作用是什么?64
2.10 itertools模块有什么作用?66
2.11 浅谈你对Python编码规范的认识,并写出你知道的编码规范66
2.12 与SHELL脚本相关的面试题67
2.13 其他真题77
第3章 Python进阶89
3.1 函数89
3.1.1 Python如何定义一个函数?89
3.1.2 什么是lambda函数?89
3.1.3 普通函数和lambda函数有什么异同点?91
3.1.4 单下划线与双下划线的区别有哪些?91
3.1.5 Python的函数参数传递方式是什么?96
3.1.6 什么是闭包?98
3.1.7 函数中*args和**kwargs的作用是什么?99
3.1.8 其他100
3.2 模块121
3.2.1 什么是模块?它有什么好处?121
3.2.2 模块有哪几种导入方式?122
3.2.3 os和sys模块的区别有哪些?122
3.2.4 “__name__”属性的作用是什么?126
3.2.5 dir()函数的作用是什么?127
3.2.6 读写文件常用的方法有哪些?127
3.2.7 pickle模块的作用是什么?130
3.2.8 Python里面如何生成随机数?132
3.2.9 pip是什么?133
3.2.10 其他135
3.3 Python的装饰器是什么?136
3.4 Python的构造器是什么?137
3.5 Python的生成器(Generator)是什么?138
3.6 Python的迭代器(Iterator)是什么?141
3.7 迭代器和生成器的区别有哪些?142
3.8 isinstance()和type()的区别是什么?143
3.9 Python中的浅拷贝、深拷贝和赋值之间有什么区别?144
3.10 Python是如何进行内存管理的?147
3.11 内置函数148
3.11.1 map()函数的作用是什么?148
3.11.2 reduce()函数的作用是什么?150
3.11.3 filter()函数的作用是什么?150
3.11.4 enumerate()函数的作用是什么?151
3.11.5 zip()函数的作用是什么?152
3.11.6 hasattr()、getattr()和setattr()函数的作用有哪些?153
3.12 面向对象154
3.12.1 面向对象有哪三大特性?154
3.12.2 什么是继承?154
3.12.3 什么是多态?157
3.12.4 类属性和实例属性的区别158
3.12.5 类变量需要注意什么?159
3.12.6 __init__方法的作用是什么?159
3.12.7 __new__和__init__的区别有哪些?160
3.12.8 __repr__和__str__有什么区别?161
3.12.9 什么是类方法、静态方法和实例方法?162
3.12.10 什么是私有属性和私有方法?163
3.12.11 Python如何实现单例模式?163
3.12.12 其他165
3.13 正则表达式171
3.13.1 正则表达式的一些语法171
3.13.2 re模块有哪些常用的函数?174
3.13.3 用Python匹配HTML tag的时候,和有什么区别?177 3.13.4 Python里面search()和match()的区别178
3.13.5 如何用Python来进行查询和替换一个文本字符串?178
3.13.6 其他179
3.14 办公自动化181
3.14.1 Python如何操作Word?181
3.14.2 Python如何操作Excel?182
3.15 系统编程184
3.15.1 什么是任务、进程和线程?184
3.15.2 thread模块中的start_new_thread()函数的作用是什么?185
3.15.3 使用Threading模块如何创建线程?185
3.15.4 如何保证线程之间的同步?187
3.15.5 Queue模块的主要作用是什么?188
3.15.6 什么是进程池?190
3.15.7 其他190
3.16 网络编程192
3.16.1 Python网络编程有哪些常用模块?194
3.16.2 Socket对象内建方法有哪些?194
3.16.3 如何用Python来发送邮件?195
3.16.4 使用Python如何收取邮件?196
3.16.5 如何用Python来发送短信?197
3.17 其他真题198
第4章 数据结构与算法204
4.1 排序204
4.1.1 如何进行选择排序?204
4.1.2 如何进行插入排序?205
4.1.3 如何进行冒泡排序?205
4.1.4 如何进行归并排序?206
4.1.5 如何进行快速排序?207
4.1.6 如何进行希尔排序?209
4.1.7 如何进行堆排序?211
4.1.8 如何进行基数排序?212
4.2 大数据213
4.2.1 如何从大量的url中找出相同的url?214
4.2.2 如何从大量数据中找出高频词?214
4.2.3 如何在大量的数据中找出不重复的整数?215
4.2.4 如何在大量的数据中判断一个数是否存在?215
4.2.5 如何查询最热门的查询串?216
4.2.6 如何统计不同电话号码的个数?217
4.2.7 如何从5亿个数中找出中位数?217
4.2.8 如何找出排名前500的数?218
第5章 数据库相关220
5.1 数据库基础理论220
5.1.1 数据库的常见分类有哪些?220
5.1.2 事务的概念及其4个特性是什么?225
5.1.3 事务的4种隔离级别(Isolation Level)分别是什么?226
5.1.4 Oracle、MySQL和SQL Server中的事务隔离级别228
5.1.5 什么是范式?231
5.1.6 什么是第一、二、三、BC范式?231
5.1.7 什么是反范式?235
5.1.8 索引的使用原则有哪些?236
5.1.9 什么是存储过程?它有什么优点?237
5.1.10 存储过程和函数的区别是什么?238
5.1.11 触发器的作用、优缺点有哪些?238
5.1.12 什么是视图?视图的作用是什么?239
5.1.13 什么是SQL注入?239
5.1.14 什么是MVCC?240
5.1.15 锁的作用有哪些?240
5.1.16 更新丢失指的是什么?240
5.1.17 悲观锁和乐观锁241
5.1.18 什么是死锁(DeadLock)?242
5.2 Python操作数据库243
5.2.1 SQLite数据库243
5.2.2 MySQL数据库244
5.2.3 MongoDB数据库247
5.2.4 Redis数据库248
5.3 其他250
第6章 爬虫基础知识254
6.1 什么是爬虫?254
6.2 爬虫的基本流程有哪些?254
6.3 Request中包含了哪些内容?254
6.4 Response中包含了哪些内容?256
6.5 HTTP请求中的POST、GET有什么区别?258
6.6 HTTP、HTTPS协议有什么区别?258
6.7 Cookie和Session有什么区别?258
6.8 域名和IP之间有什么关系?如何查看某个域名对应的IP地址?259
6.9 在HTTP协议头中,keep-alive字段有什么作用?259
6.10 HTTP常用的状态码(Status Code)有哪些?259
6.11 常用的爬虫框架或者模块有哪些?谈谈它们的区别或者优缺点261
6.12 Scrapy相关261
6.12.1 什么是Scrapy?它有哪些优缺点?261
6.12.2 Scrapy框架中各组件的作用是什么?261
6.12.3 其他262
6.13 应用实例265
6.13.1 统计并存储标签中所有单词及数目265
6.13.2 使用Python爬虫爬取小麦苗博客的链接地址并保存到本地Excel中266
6.14 其他270
第7章 数据分析基础知识275
7.1 Anaconda是什么?275
7.2 Jupyter Notebook介绍275
7.2.1 Jupyter Notebook是什么?275
7.2.2 Jupyter的Cell是什么?276
7.2.3 Markdown模式常用命令包括哪些?277
7.2.4 常用Magic魔法指令有哪些?277
7.3 NumPy介绍279
7.3.1 常用的Ndarray创建方法有哪些?279
7.3.2 Ndarray的属性有哪几个?281
7.3.3 常用Ndarray方法282
7.3.4 Ndarray的基本操作283
7.3.5 NumPy基本运算286
7.4 Pandas介绍287
7.4.1 Series288
7.4.2 DataFrame290
7.4.3 Series和DataFrame的运算293
7.4.4 Pandas数据处理294
7.4.5 总结297
7.5 Matplotlib介绍298
7.5.1 Matplotlib简介及安装298
7.5.2 Matplotlib的配置文件包括哪些配置项?298
7.5.3 Matplotlib用到的格式化字符包括哪些?299
7.5.4 Matplotlib用到的颜色缩写包括哪些?300
7.5.5 Matplotlib的使用301
7.6 数据可视化库Seaborn304
7.6.1 Seaborn简介与安装304
7.6.2 Seaborn与Matplotlib的区别有哪些?304
7.6.3 Seaborn绘制图305
第8章 机器学习基础知识312
8.1 机器学习背景312
8.2 基本术语312
8.3 机器学习算法315
8.3.1 KNN-最近邻法315
8.3.2 最小二乘法318
8.3.3 梯度下降法320
8.3.4 线性回归算法322
8.3.5 逻辑回归323
8.3.6 K-Means聚类算法325
8.3.7 支持向量机算法325
8.3.8 模型评估与选择326
8.4 机器学习展望331
第9章 笔试面试真题与答案332
9.1 真题1332
9.2 真题2336
9.3 答案341
9.3.1 真题1答案341
9.3.2 真题2答案345