作者:麋鹿
链接:https://www.zhihu.com/question/54513391/answer/779646691
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

1.列出 5 个常用 Python 标准库?(os, sys, time, datetime, collection,socket等等)

2.Python 内建数据类型有哪些?(int,float,str,list,tuple,dict,set)

3.简述 with 方法打开处理文件帮我们做了什么?(执行open函数的enter和exit函数,enter打开文件,exit函数关闭文件)

4.列出 Python 中可变数据类型和不可变数据类型,为什么?(不可变int,float,str,tuple,可变list,dict,set)

5.Python 获取当前日期?(datetime.dateime.now())

6.统计字符串每个单词出现的次数(count方法)

7.用 python 删除文件和用 linux 命令删除文件方法(os.remove(xxx),os.popen("rm xxx"))

8.写一段自定义异常代码

class MyException(Exception):

pass

9.举例说明异常模块中 try except else finally 的相关意义(try到except之间的代码是可能发生异常的代码,else是上述异常没有发生后执行的语句,finally是无论有没有异常都要执行的语句)

10.遇到 bug 如何处理(这个问题太广泛了,一般都是通过调试定位)

语言特性

1.谈谈对 Python 和其他语言的区别(python是动态的解释器语言,不需要编译,一边解释一遍执行,速度会比静态语言慢)

2.简述解释型和编译型编程语言(解释型语言不需要编译,一边解释一边执行代码。编译型语言需要将代码先翻译成目标代码,之后才执行)

3.Python 的解释器种类以及相关特点?(CPython标准的,pypy,cython等等)

4.说说你知道的Python3 和 Python2 之间的区别?(dict中没有了iteritem方法。将int和long合并了,python2中str和unicode在python3中为str和bytes等等)

5.Python3 和 Python2 中 int 和 long 区别?(python2中有int和long,3没有)

6.xrange 和 range 的区别?(xrange在3中被删除了,python2中xrange返回的是生成器,range返回的是数组)

编码规范

7.什么是 PEP8?(python编码规范)

8.了解 Python 之禅么?(import this)

9.了解 docstring 么?(字符串注解)

10.了解类型注解么?(在传入参数时指定参数类型,但是只是方便阅读,对程序执行没有作用)

11.例举你知道 Python 对象的命名规范,例如方法或者类等(方法使用小写加下划线,类使用驼峰式)

12.Python 中的注释有几种?(块注释和行注释)

13.如何优雅的给一个函数加注释?(对函数的功能,入参,返回类型进行注释)

14.如何给变量加注释?(没有必要,变量名应该明确变量的作用。如果需要,在变量上面做注释)

15.Python 代码缩进中是否支持 Tab 键和空格混用。(不支持,建议使用4个空格)

16.是否可以在一句 import 中导入多个库?(不建议,一个import导入一个库)

17.在给 Py 文件命名的时候需要注意什么?(小写加下划线)

18.例举几个规范 Python 代码风格的工具(pylint,autopep8)

数据类型

字符串

19.列举 Python 中的基本数据类型?(int,float,str,list,dict,map,tuple)

20.如何区别可变数据类型和不可变数据类型 (int,float,str,tuple不可变)

21.将"hello world"转换为首字母大写"Hello World"(capitalize)

22.如何检测字符串中只含有数字?(isdigit)

23.将字符串"ilovechina"进行反转(reverse)

24.Python 中的字符串格式化方式你知道哪些?("".format(), "%s " %xxx. f"{xxx}")

25.有一个字符串开头和末尾都有空格,比如“ adabdw ”,要求写一个函数把这个字符串的前后空格都去掉。(strip)

26.获取字符串”123456“最后的两个字符。([-2:])

27.一个编码为 GBK 的字符串 S,要将其转成 UTF-8 编码的字符串,应如何操作?(S.encode().decode("utf-8"))

28. (1)s="info:xiaoZhang 33 shandong",用正则切分字符串输出['info', 'xiaoZhang', '33', 'shandong'](2) a = "你好 中国 ",去除多余空格只留一个空格。(s.split(" "))

29. (1)怎样将字符串转换为小写 (2)单引号、双引号、三引号的区别?(lower, 单引号,双引号都是代表字符串,三引号表示块)

列表

30.已知 AList = [1,2,3,1,2],对 AList 列表元素去重,写出具体过程。(list(set(Alist))),先转set,去重,在转list)

31.如何实现 "1,2,3" 变成 ["1","2","3"](split(","))

32.给定两个 list,A 和 B,找出相同元素和不同元素(转set,然后调用intersection和difference)

33.[[1,2],[3,4],[5,6]]一行代码展开该列表,得出[1,2,3,4,5,6](列表推导)

34.合并列表[1,5,7,9]和[2,2,6,8](append)

35.如何打乱一个列表的元素?(random.shuffle)

字典

36.字典操作中 del 和 pop 有什么区别(pop删除字典中最后一个元素,del可以删除指定的元素)

37.按照字典的内的年龄排序(d1.sort(key=lambda x:x["age"]))

38.请合并下面两个字典 a = {"A":1,"B":2},b = {"C":3,"D":4}(a.update(b))

39.如何使用生成式的方式生成一个字典,写一段功能代码。({})

40.如何把元组("a","b")和元组(1,2),变为字典{"a":1,"b":2}({key:value for key,value in zip(tupleA, tupleB)})

综合

41.Python 常用的数据结构的类型及其特性?

42.如何交换字典 {"A":1,"B":2}的键和值?

43.Python 里面如何实现 tuple 和 list 的转换?

44.我们知道对于列表可以使用切片操作进行部分元素的选择,那么如何对生成器类型的对象实现相同的功能呢?

45.请将[i for i in range(3)]改成生成器

46.a="hello"和 b="你好"编码成 bytes 类型

47.下面的代码输出结果是什么?

48.下面的代码输出的结果是什么?

操作类题目

49.Python 交换两个变量的值

50.在读文件操作的时候会使用 read、readline 或者 readlines,简述它们各自的作用

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

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

53.有两个磁盘文件 A 和 B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件 C 中。

54.如果当前的日期为 20190530,要求写一个函数输出 N 天后的日期,(比如 N 为 2,则输出 20190601)。

55.写一个函数,接收整数参数 n,返回一个函数,函数的功能是把函数的参数和 n 相乘并把结果返回。

56.下面代码会存在什么问题,如何改进?

57.一行代码输出 1-100 之间的所有偶数。

58.with 语句的作用,写一段代码?

59.python 字典和 json 字符串相互转化方法

60.请写一个 Python 逻辑,计算一个文件中的大写字母数量

61. 请写一段 Python连接 Mongo 数据库,然后的查询代码。

62.说一说 Redis 的基本类型。

63. 请写一段 Python连接 Redis 数据库的代码。

64. 请写一段 Python 连接 MySQL 数据库的代码。

65.了解 Redis 的事务么?

66.了解数据库的三范式么?

67.了解分布式锁么?

68.用 Python 实现一个 Reids 的分布式锁的功能。

69.写一段 Python 使用 Mongo 数据库创建索引的代码。

高级特性

70.函数装饰器有什么作用?请列举说明?

71.Python 垃圾回收机制?

72.魔法函数 __call__怎么使用?

73.如何判断一个对象是函数还是方法?

74.@classmethod 和@staticmethod 用法和区别

75.Python 中的接口如何实现?

76.Python 中的反射了解么?

77.metaclass 作用?以及应用场景?

78.hasattr() getattr() setattr()的用法

79.请列举你知道的 Python 的魔法方法及用途。

80.如何知道一个 Python 对象的类型?

81.Python 的传参是传值还是传址?

82.Python 中的元类(metaclass)使用举例

83.简述 any()和 all()方法

84.filter 方法求出列表所有奇数并构造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

85.什么是猴子补丁?

86.在 Python 中是如何管理内存的?

87.当退出 Python 时是否释放所有内存分配?

正则表达式

88.使用正则表达式匹配出<html><h1>百度一下,你就知道</html>中的地址

a="张明 98 分",用 re.sub,将 98 替换为 100

89.正则表达式匹配中(.*)和(.*?)匹配区别?

90.写一段匹配邮箱的正则表达式

其他内容

91.解释一下 python 中 pass 语句的作用?

92.简述你对 input()函数的理解

93.python 中的 is 和==

94.Python 中的作用域

95.三元运算写法和应用场景?

96.了解 enumerate 么?

97.列举 5 个 Python 中的标准模块

98.如何在函数中设置一个全局变量

99.pathlib 的用法举例

100.Python 中的异常处理,写一个简单的应用场景

101.Python 中递归的最大次数,那如何突破呢?

102.什么是面向对象的 mro

103.isinstance 作用以及应用场景?

104.什么是断言?应用场景?

105.lambda 表达式格式以及应用场景?

106.新式类和旧式类的区别

107.dir()是干什么用的?

108.一个包里有三个模块,demo1.py, demo2.py, demo3.py,但使用 from tools import *导入模块时,如何保证只有 demo1、demo3 被导入了。

109.列举 5 个 Python 中的异常类型以及其含义

110.copy 和 deepcopy 的区别是什么?

111.代码中经常遇到的*args, **kwargs 含义及用法。

112.Python 中会有函数或成员变量包含单下划线前缀和结尾,和双下划线前缀结尾,区别是什么?

113.w、a+、wb 文件写入模式的区别

114.举例 sort 和 sorted 的区别

115.什么是负索引?

116.pprint 模块是干什么的?

117.解释一下 Python 中的赋值运算符

118.解释一下 Python 中的逻辑运算符

119.讲讲 Python 中的位运算符

120.在 Python 中如何使用多进制数字?

121.怎样声明多个变量并赋值?

算法和数据结构

122.已知:

(1) 从 AList 和 BSet 中 查找 4,最坏时间复杂度那个大?

(2) 从 AList 和 BSet 中 插入 4,最坏时间复杂度那个大?

123.用 Python 实现一个二分查找的函数

124.python 单例模式的实现方法

125.使用 Python 实现一个斐波那契数列

126.找出列表中的重复数字

127.找出列表中的单个数字

128.写一个冒泡排序

129.写一个快速排序

130.写一个拓扑排序

131.python 实现一个二进制计算

132.有一组“+”和“-”符号,要求将“+”排到左边,“-”排到右边,写出具体的实现方法。

133.单链表反转

134.交叉链表求交点

135.用队列实现栈

136.找出数据流的中位数

137.二叉搜索树中第 K 小的元素

爬虫相关

138.在 requests 模块中,requests.content 和 requests.text 什么区别

139.简要写一下 lxml 模块的使用方法框架

140.说一说 scrapy 的工作流程

141.scrapy 的去重原理

142.scrapy 中间件有几种类,你用过哪些中间件

143.你写爬虫的时候都遇到过什么?反爬虫措施,你是怎么解决的?

144.为什么会用到代理?

145.代理失效了怎么处理?

146.列出你知道 header 的内容以及信息

147.说一说打开浏览器访问 百度一下,你就知道 获取到结果,整个流程。

148.爬取速度过快出现了验证码怎么处理

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

150.分布式爬虫主要解决什么问题

151.写爬虫是用多进程好?还是多线程好? 为什么?

152.解析网页的解析器使用最多的是哪几个

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

154.验证码的解决(简单的:对图像做处理后可以得到的,困难的:验证码是点击,拖动等动态进行的?)

155.使用最多的数据库(mysql,mongodb,redis 等),对他的理解?

网络编程

156.TCP 和 UDP 的区别?

157.简要介绍三次握手和四次挥手

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

并发

159.举例说明 conccurent.future 的中线程池的用法

160.说一说多线程,多进程和协程的区别。

161.简述 GIL

162.进程之间如何通信

163.IO 多路复用的作用?

164.select、poll、epoll 模型的区别?

165.什么是并发和并行?

166.一个线程 1 让线程 2 去调用一个函数怎么实现?

167.解释什么是异步非阻塞?

168.threading.local 的作用?

Git 面试题

169.说说你知道的 git 命令

170.git 如何查看某次提交修改的内容

170道python面试题(转)的更多相关文章

  1. 千万不要错过这几道Python面试题,Python面试题No16

    第1题: python下多线程的限制以及多进程中传递参数的方式? python多线程有个全局解释器锁(global interpreter lock),简称GIL,这个GIL并不是python的特性, ...

  2. 百道Python面试题实现,搞定Python编程就靠它

    对于一般的机器学习求职者而言,最基础的就是掌握 Python 编程技巧,随后才是相关算法或知识点的掌握.在这篇文章中,我们将介绍一个 Python 练习题项目,它从算法练习题到机试实战题提供了众多问题 ...

  3. 60道Python面试题&答案精选!找工作前必看

    需要Word/ PDF版本的同学可以在实验楼微信公众号回复关键词"面试题"获取. 1. Python 的特点和优点是什么? 答案:略. 2. 什么是lambda函数?它有什么好处? ...

  4. 315道python面试题(参考答案)

    第一部分 Python基础篇 1:为什么学习Python 家里有在这个IT圈子里面,也想让我接触这个圈子,然后给我建议学的Python, 然后自己通过百度和向有学过Python的同学了解了Python ...

  5. 315道Python面试题答案

    目录 Python基础篇 1:为什么学习Python 2:通过什么途径学习Python 3:谈谈对Python和其他语言的区别 Python的优势: 4:简述解释型和编译型编程语言 5:Python的 ...

  6. 大意了,这几道Python面试题没有答对,Python面试题No13

    第1题: Python如何爬取 HTTPS 网站? 这类问题属于简单类问题 在使用 requests 前加入:requests.packages.urllib3.disable_warnings(). ...

  7. 点开瞅瞅,再来几道Python面试题吧,Python面试题No20

    本面试题题库,由公号:非本科程序员 整理发布 第1题:如何理解 Django 被称为 MTV 模式? 这个题就是面向对象设计和设计模式的开始. 你可能比较熟悉的模式叫做: MVC.说是 Model V ...

  8. 不吹不擂,315 道 Python 面试题,欢迎挑战!

    各位大佬暂时先来315道题尝尝吧,后面有时间再继续补充. 有缘人如果看到这些题,不妨留言一下答案,来证明下你到底有多水,哈哈哈哈哈刀哈哈哈哈哈哈 第一部分 Python基础篇(80题) 1.为什么学习 ...

  9. 总结2020最新50道Python面试题集锦(附答案)

    Python是目前编程领域最受欢迎的语言.在本文中,我将总结Python面试中最常见的50个问题.每道题都提供参考答案,希望能够帮助你在2019年求职面试中脱颖而出,找到一份高薪工作.这些面试题涉及P ...

随机推荐

  1. Codeforces G. Bus Number(dfs排列)

    题目描述: Bus Number time limit per test 1 second memory limit per test 256 megabytes input standard inp ...

  2. Vue 路由守卫解决页面退出和弹窗的显示冲突

    在使用UI框架提供的弹出层Popup时,如Vant UI的popup,在弹出层显示时,点击物理按键或者小程序自带的返回时,会直接退出页面,这明显不符合页面逻辑. 解决思路: 在弹出层显示时,点击了返回 ...

  3. 网站安全DDOS攻击及监测

    一. 监测 在类Unix系统中可以使用top查看系统资源.进程.内存占用等信息.查看网络状态可以使用netstat.nmap等工具.若要查看实时的网络流量,监控TCP/IP连接等,则可以使用iftop ...

  4. Map集合迭代的两种方法

    import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; pub ...

  5. 修改Tomcat启动窗口的名称(Title)

    内容简介 有时在运行项目时,在同一服务器会启动多个Tomcat,很难区分某个tomcat运行的是哪个项目,或者想查看tomcat的端口号,只能去server.xml中查看. 如果能把Tomcat窗口的 ...

  6. [Ignatius and the Princess III] 整数的无序拆分(DP + 生成函数)

    整数的有序拆分就是隔板法,无序拆分则有两种处理方法 DP递推 我们假设P(n,m)P(n,m)P(n,m)是正整数nnn无序拆分为mmm个正整数的方案数 对于某一种拆分,不妨将拆分出来的mmm个数从小 ...

  7. 1、HDFS 架构、启动过程

    Hadoop Distributed File System 易于拓展的分布式文件系统 运行在大量普通廉价机器上,提供容错机制 为大量用户提供性能不错的文件存取服务 NameNode Namenode ...

  8. laravel使用手札——使用PHPStorm提升开发速度

    laravel使用手札——使用PHPStorm提升开发速度 phpstormphplaravel  阅读约 4 分钟 PHPStorm安装 PHPStorm 使用手札——安装看这里 代码自动提示支持 ...

  9. Xamarin.IOS/Mac开发中遇到的问题

    虚拟机中安装的mac系统无法识别iphone 今天在 Xamarin.iOS 应用的免费预配 时,进行到 5.插入要在其中部署应用的 iOS 设备. 在第8选择iphone设备时,发现iphone并没 ...

  10. 洛谷 题解 P2731 【骑马修栅栏 Riding the Fences】

    简单的开始 完美の开始 这里数组什么的用来干什么后面标注的清楚了 #include<iostream> #include<cstdio> #include<cmath&g ...