1.有一个jsonline格式的文件file.txt大小约为10K
2.补充缺失的代码
3.输入日期, 判断这一天是这一年的第几天?
4.打乱一个排好序的list对象alist?
5.现有字典 d= {‘a’:24,‘g’:52,‘i’:12,‘k’:33}请按value值进行排序?
6.字典推导式
7.请反转字符串 “aStr”?
8.将字符串 “k:1 |k1:2|k2:3|k3:4”,处理成字典 {k:1,k1:2,…}
9.请按alist中元素的age由大到小排序
10.下面代码的输出结果将是什么?
11.写一个列表生成式,产生一个公差为11的等差数列
12.给定两个列表,怎么找出他们相同的元素和不同的元素?
13.请写出一段python代码实现删除list里面的重复元素?
14.给定两个list A,B ,请用找出A,B中相同与不同的元素 企业面试题
15.python新式类和经典类的区别?
16.python中内置的数据结构有几种?
17.python如何实现单例模式?请写出两种实现方式?
18.反转一个整数,例如-123 --> -321
19.设计实现遍历目录与子目录,抓取.pyc文件
20.一行代码实现1-100之和
21.Python-遍历列表时删除元素的正确做法
22.字符串的操作题目
23.可变类型和不可变类型
24.is和==有什么区别?
25.求出列表所有奇数并构造新列表
26.用一行python代码写出1+2+3+10248
27.Python中变量的作用域?(变量查找顺序)
28.字符串 “123” 转换成 123 ,不使用内置api,例如 int()
29.Given an array of integers
30.python代码实现删除一个list里面的重复元素
31.统计一个文本中单词频次最高的10个单词?
32.请写出一个函数满足以下条件
33.使用单一的列表生成式来产生一个新的列表
34.用一行代码生成[1,4,9,16,25,36,49,64,81,100]
35.输入某年某月某日,判断这一天是这一年的第几天?
36.两个有序列表,l1,l2,对这两个列表进行合并不可使用extend
37.给定一个任意长度数组,实现一个函数
38.写一个函数找出一个整数数组中,第二大的数
39.阅读一下代码他们的输出结果是什么?
40.统计一段字符串中字符出现的次数
41.super函数的具体用法和场景
42.Python中类方法、类实例方法、静态方法有何区别?
43.遍历一个object的所有属性,并print每一个属性名?
44.写一个类,并让它尽可能多的支持操作符?
45.介绍Cython,Pypy Cpython Numba各有什么缺点
46.请描述抽象类和接口类的区别和联系
47.Python中如何动态获取和设置对象的属性?
48.哪些操作会导致Python内存溢出,怎么处理?
49.关于Python内存管理,下列说法错误的是 B
50.Python的内存管理机制及调优手段?
51.内存泄露是什么?如何避免?
52.python常见的列表推导式?
53.简述read、readline、readlines的区别?
54.什么是Hash(散列函数)?
55.python函数重载机制?
56.写一个函数找出一个整数数组中,第二大的数
57.手写一个判断时间的装饰器
58.使用Python内置的filter()方法来过滤?
59.编写函数的4个原则
60.函数调用参数的传递方式是值传递还是引用传递?
61.如何在function里面设置一个全局变量
62.对缺省参数的理解 ?
63.Mysql怎么限制IP访问?
64.带参数的装饰器?
65.为什么函数名字可以当做参数用?
66.Python中pass语句的作用是什么?
67.有这样一段代码,print c会输出什么,为什么?
68.交换两个变量的值?
69.map函数和reduce函数?
70.回调函数,如何通信的?
71.Python主要的内置数据类型都有哪些? print dir( ‘a ’) 的输出?
72.map(lambda x:xx,[y for y in range(3)])的输出?
73.hasattr() getattr() setattr() 函数使用详解?
74.一句话解决阶乘函数?
75.什么是lambda函数? 有什么好处?
76.递归函数停止的条件?
77.下面这段代码的输出结果将是什么?请解释。
78.什么是lambda函数?它有什么好处?写一个匿名函数求两个数的和
79.对设计模式的理解,简述你了解的设计模式?
80.请手写一个单例
81.单例模式的应用场景有那些?
82.用一行代码生成[1,4,9,16,25,36,49,64,81,100]
83.对装饰器的理解,并写出一个计时器记录方法执行性能的装饰器?
84.解释以下什么是闭包?
85.函数装饰器有什么作用?
86.生成器,迭代器的区别?
87.X是什么类型?
88.请用一行代码 实现将1-N 的整数列表以3为单位分组
89.Python中yield的用法?
90.Python中的可变对象和不可变对象?
91.Python的魔法方法
92.面向对象中怎么实现只读属性?
93.谈谈你对面向对象的理解?
94.请写出一段代码用正则匹配出ip?
95.a = “abbbccc”,用正则匹配为abccc,不管有多少b,就出现一次?
96.Python字符串查找和替换?
97.用Python匹配HTML g tag的时候,<.> 和 <.*?> 有什么区别
98.正则表达式贪婪与非贪婪模式的区别?
99.写出开头匹配字母和下划线,末尾是数字的正则表达式?
100.正则表达式操作
101.请匹配出变量A 中的json字符串。
102.怎么过滤评论中的表情?
103.简述Python里面search和match的区别
104.请写出匹配ip的Python正则表达式
105.Python里match与search的区别?
106.进程总结
107.谈谈你对多进程,多线程,以及协程的理解,项目是否用?
108.Python异常使用场景有那些?
109.多线程共同操作同一个数据互斥锁同步?
110.什么是多线程竞争?
111.请介绍一下Python的线程同步?
112.解释以下什么是锁,有哪几种锁?
113.什么是死锁?
114.多线程交互访问数据,如果访问到了就不访问了?
115.什么是线程安全,什么是互斥锁?
116.说说下面几个概念:同步,异步,阻塞,非阻塞?
117.什么是僵尸进程和孤儿进程?怎么避免僵尸进程?
118.python中进程与线程的使用场景?
119.线程是并发还是并行,进程是并发还是并行?
120.并行(parallel)和并发(concurrency)?
121.IO密集型和CPU密集型区别?
122.python asyncio的原理?
123.怎么实现强行关闭客户端和服务器之间的连接?
124.简述TCP和UDP的区别以及优缺点?
125.简述浏览器通过WSGI请求动态资源的过程?
126.描述用浏览器访问www.baidu.com的过程
127.Post和Get请求的区别?
128.cookie 和session 的区别?
129.列出你知道的HTTP协议的状态码,说出表示什么意思?
130.请简单说一下三次握手和四次挥手?
131.说一下什么是tcp的2MSL?
132.为什么客户端在TIME-WAIT状态必须等待2MSL的时间?
133.说说HTTP和HTTPS区别?
134.谈一下HTTP协议以及协议头部中表示数据类型的字段?
135.HTTP请求方法都有什么?
136.使用Socket套接字需要传入哪些参数 ?
137.HTTP常见请求头?
138.七层模型?
139.url的形式?
140.对Flask蓝图(Blueprint)的理解?
141.Flask 和 Django 路由映射的区别?
142.什么是wsgi,uwsgi,uWSGI?
143.Django、Flask、Tornado的对比?
144.CORS 和 CSRF的区别?
145.Session,Cookie,JWT的理解
146.简述Django请求生命周期
147.用的restframework完成api发送时间时区
148.nginx,tomcat,apach到都是什么?
149.请给出你熟悉关系数据库范式有哪些,有什么作用?
150.简述QQ登陆过程
151.post 和 get的区别?
152.项目中日志的作用
153.django中间件的使用?
154.谈一下你对uWSGI和nginx的理解?
155.Python中三大框架各自的应用场景?
156.Django中哪里用到了线程?哪里用到了协程?哪里用到了进程?
157.有用过Django REST framework吗?
158.对cookies与session的了解?他们能单独用吗?
159.试列出至少三种目前流行的大型数据库
160.列举您使用过的Python网络爬虫所用到的网络数据包?
161.爬取数据后使用
哪个数据库存储数据的,为什么? 162.你用过的爬虫框架或者模块有哪些?优缺点?
163.写爬虫是用多进程好?还是多线程好?
164.常见的反爬虫和应对方法?
165.解析网页的解析器使用最多的是哪几个?
166.需要登录的网页,如何解决同时限制ip,cookie,session
167.验证码的解决?
168.使用最多的数据库,对他们的理解?
169.
编写过哪些爬虫中间件? 170.“极验”滑动验证码如何破解?
171.爬虫多久爬一次,爬下来的数据是怎么存储?
172.cookie过期的处理问题?
173.动态加载又对及时性要求很高怎么处理?
174.HTTPS有什么优点和缺点?
175.HTTPS是如何实现安全传输数据的?
176.TTL,MSL,RTT各是什么?
177.谈一谈你对Selenium和PhantomJS了解
178.平常怎么使用代理的 ?
179.存放在数据库(redis、mysql等)。
180.怎么监控爬虫的状态?
181.描述下scrapy框架运行的机制?
182.谈谈你对Scrapy的理解?
183.怎么样让 scrapy 框架发送一个 post 请求(具体写出来)
184.怎么监控爬虫的状态 ?
185.怎么判断网站是否更新?
186.图片、视频爬取怎么绕过防盗连接
187.你爬出来的数据量大概有多大?大概多长时间爬一次?
188.用什么数据库存爬下来的数据?部署是你做的吗?怎么部署?
189.增量爬取
190.爬取下来的数据如何去重,说一下scrapy的具体的算法依据。
191.Scrapy的优缺点?
192.怎么设置爬取深度?
193.scrapy和scrapy-redis有什么区别?为什么选择redis数据库?
194.分布式爬虫主要解决什么问题?
195.什么是分布式存储?
196.你所知道的分布式爬虫方案有哪些?
197.scrapy-redis,有做过其他的分布式爬虫吗?
198.主键 超键 候选键 外键
199.视图的作用,视图可以更改么?
200.drop,delete与truncate的区别
201.索引的工作原理及其种类
202.连接的种类
203.数据库优化的思路
204.存储过程与触发器的区别
205.悲观锁和乐观锁是什么?
206.你常用的mysql引擎有哪些?各引擎间有什么区别?
207.Redis宕机怎么解决?
208.redis和mecached的区别,以及使用场景
209.Redis集群方案该怎么做?都有哪些方案?
210.Redis回收进程是如何工作的
211.MongoDB中对多条记录做更新操作命令是什么?
212.MongoDB如何才会拓展到多个shard里?
213.编写测试计划的目的是
214.对关键词触发模块进行测试
215.其他常用笔试题目网址汇总
216.测试人员在软件开发过程中的任务是什么
217.一条软件Bug记录都包含了哪些内容?
218.简述黑盒测试和白盒测试的优缺点
219.请列出你所知道的软件测试种类,至少5项
220.Alpha测试与Beta测试的区别是什么?
221.举例说明什么是Bug?一个bug report应包含什么关键字?
222.数组中出现次数超过一半的数字-Python版
223.求100以内的质数
224.无重复字符的最长子串-Python实现
225.通过2个5/6升得水壶从池塘得到3升水
226.什么是MD5加密,有什么特点?
227.什么是对称加密和非对称加密
228.冒泡排序的思想?
229.快速排序的思想?
230.如何判断单向链表中是否有环?
231.你知道哪些排序算法(一般是通过问题考算法)
232.斐波那契数列
233.如何翻转一个单链表?
234.青蛙跳台阶问题
235.两数之和 Two Sum
236.搜索旋转排序数组 Search in Rotated Sorted Array
237.Python实现一个Stack的数据结构
238.写一个二分查找
239.set 用 in 时间复杂度是多少,为什么?
240.列表中有n个正整数范围在[0,1000],进行排序;
241.面向对象编程中有组合和继承的方法实现新的类
242.找出1G的文件中高频词
243.一个大约有一万行的文本文件统计高频词
244.怎么在海量数据中找出重复次数最多的一个?
245.判断数据是否在大量数据中
26.用一行python代码写出1+2+3+10248
from functools import reduce
#1.使用sum内置求和函数
num = sum([1,2,3,10248])
print(num)
#2.reduce 函数
num1 = reduce(lambda x,y :x+y,[1,2,3,10248])
print(num1)
27.Python中变量的作用域?(变量查找顺序)
函数作用域的LEGB顺序
1.什么是LEGB?
L: local 函数内部作用域
E: enclosing 函数内部与内嵌函数之间
G: global 全局作用域
B: build-in 内置作用
python在函数里面的查找分为4种,称之为LEGB,也正是按照这是顺序来查找的
28.字符串 “123” 转换成 123 ,不使用内置api,例如 int()
方法一: 利用 str 函数
def atoi(s):
num = 0
for v in s:
for j in range(10):
if v == str(j):
num = num * 10 + j
return num
方法二: 利用 ord 函数
方法三: 利用 eval 函数
方法四: 结合方法二,使用 reduce ,一行解决
29.Given an array of integers
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定nums = [2,7,11,15],target=9 因为 nums[0]+nums[1] =2+7 =9,所以返回[0,1]
给列表中的字典排序:假设有如下list对象,alist=[{“name”:“a”,“age”:20},{“name”:“b”,“age”:30},{“name”:“c”,“age”:25}],将alist中的元素按照age从大到小排序 alist=[{“name”:“a”,“age”:20},{“name”:“b”,“age”:30},{“name”:“c”,“age”:25}]
alist_sort = sorted(alist,key=lambda e: e.__getitem__('age'),reverse=True)
30.python代码实现删除一个list里面的重复元素
31.统计一个文本中单词频次最高的10个单词?
32.请写出一个函数满足以下条件
该函数的输入是一个仅包含数字的list,输出一个新的list,其中每一个元素要满足以下条件:
1、该元素是偶数
2、该元素在原list中是在偶数的位置(index是偶数)
个人公众号 yk 坤帝
后台回复 项目三 获取整理资源
def num_list(num):
return [i for i in num if i %2 ==0 and num.index(i)%2==0]
num = [0,1,2,3,4,5,6,7,8,9,10]
result = num_list(num)
print(result)
33.使用单一的列表生成式来产生一个新的列表
该列表只包含满足以下条件的值,元素为原始列表中偶数切片
list_data = [1,2,5,8,10,3,18,6,20]
res = [x for x in list_data[::2] if x %2 ==0]
print(res)
34.用一行代码生成[1,4,9,16,25,36,49,64,81,100]
[x * x for x in range(1,11)]
35.输入某年某月某日,判断这一天是这一年的第几天?
个人公众号 yk 坤帝
后台回复 项目三 获取整理资源
import datetime
y = int(input("请输入4位数字的年份:"))
m = int(input("请输入月份:"))
d = int(input("请输入是哪一天"))
targetDay = datetime.date(y,m,d)
dayCount = targetDay - datetime.date(targetDay.year -1,12,31)
print("%s是 %s年的第%s天。"%(targetDay,y,dayCount.days))
36.两个有序列表,l1,l2,对这两个列表进行合并不可使用extend
def loop_merge_sort(l1,l2):
tmp = []
while len(l1)>0 and len(l2)>0:
if l1[0] <l2[0]:
tmp.append(l1[0])
del l1[0]
else:
tmp.append(l2[0])
del l2[0]
while len(l1)>0:
tmp.append(l1[0])
del l1[0]
while len(l2)>0:
tmp.append(l2[0])
del l2[0]
return tmp
37.给定一个任意长度数组,实现一个函数
让所有奇数都在偶数前面,而且奇数升序排列,偶数降序排序,如字符串’1982376455’,变 成’1355798642’
38.写一个函数找出一个整数数组中,第二大的数
# 方法二
# 设置两个标志位一个存储最大数一个存储次大数
# two 存储次大值,one 存储最大值,遍历一次数组即可,先判断是否大于 one,若大于将 one 的 值给 two,将 num_list[i] 的值给 one,否则比较是否大于two,若大于直接将 num_list[i] 的值给 two,否则pass
# 方法三
# 用 reduce 与逻辑符号 (and, or)
# 基本思路与方法二一样,但是不需要用 if 进行判断。
39.阅读一下代码他们的输出结果是什么?
正确答案是[9,9,9,9],而不是[0,3,6,9]产生的原因是Python的闭包的后期绑定导致的,这意味着在闭包中的变量是在内部函数被调用的时候被查找的,因为,最后函数被调用的时候,for循环已经完成, i 的值最后是3,因此每一个返回值的i都是3,所以最后的结果是[9,9,9,9]
40.统计一段字符串中字符出现的次数
41.super函数的具体用法和场景
https://python3cookbook.readthedocs.io/zh_CN/latest/c08/p07_calling_method_on_parent_class.html
42.Python中类方法、类实例方法、静态方法有何区别?
类方法: 是类对象的方法,在定义时需要在上方使用 @classmethod 进行装饰,形参为cls,表示类对象,类对象和实例对象都可调用
类实例方法: 是类实例化对象的方法,只有实例对象可以调用,形参为self,指代对象本身;
静态方法: 是一个任意函数,在其上方使用 @staticmethod 进行装饰,可以用对象直接调用,静态方法实际上跟该类没有太大关系
43.遍历一个object的所有属性,并print每一个属性名?
44.写一个类,并让它尽可能多的支持操作符?
45.介绍Cython,Pypy Cpython Numba各有什么缺点
Cython
46.请描述抽象类和接口类的区别和联系
1.抽象类: 规定了一系列的方法,并规定了必须由继承类实现的方法。由于有抽象方法的存在,所以抽象类不能实例化。可以将抽象类理解为毛坯房,门窗,墙面的样式由你自己来定,所以抽象类与作为基类的普通类的区别在于约束性更强
2.接口类:与抽象类很相似,表现在接口中定义的方法,必须由引用类实现,但他与抽象类的根本区别在于用途:与不同个体间沟通的规则,你要进宿舍需要有钥匙,这个钥匙就是你与宿舍的接口,你的舍友也有这个接口,所以他也能进入宿舍,你用手机通话,那么手机就是你与他人交流的接口
3.区别和关联:
1.接口是抽象类的变体,接口中所有的方法都是抽象的,而抽象类中可以有非抽象方法,抽象类是声明
方法的存在而不去实现它的类
2.接口可以继承,抽象类不行
3.接口定义方法,没有实现的代码,而抽象类可以实现部分方法
4.接口中基本数据类型为static而抽象类不是
47.Python中如何动态获取和设置对象的属性?
48.哪些操作会导致Python内存溢出,怎么处理?
49.关于Python内存管理,下列说法错误的是 B
50.Python的内存管理机制及调优手段?
内存管理机制: 引用计数、垃圾回收、内存池
引用计数:引用计数是一种非常高效的内存管理手段,当一个Python对象被引用时其引用计数增加1,当其不再被一个变量引用时则计数减1,当引用计数等于0时对象被删除。弱引用不会增加引用计数
垃圾回收:
1.引用计数
引用计数也是一种垃圾收集机制,而且也是一种最直观、最简单的垃圾收集技术。Python的某个对象的引用计数降为0时,说明没有任何引用指向该对象,该对象就成为要被回收的垃圾了。比如某个新建对象,它被分配给某个引用,对象的引用计数变为1,如果引用被删除,对象的引用计数为0,那么该对象就可以被垃圾回收。不过如果出现循环引用的话,引用计数机制就不再起有效的作用了。
2.标记清除
https://foofish.net/python-gc.html
调优手段
1.手动垃圾回收
2.调高垃圾回收阈值
3.避免循环引用