Python 30道高频面试题及详细解答
开学啦,开学啦!周末坐地铁的时候看到很多同学推着行李箱,拎着大包小包的穿梭在人群中,哎新的一学期又开始啦,同时也意味着很多同学要准备毕业啦,尤其是准大四,准研三的同学。
今年的招聘行情并不乐观,小公司的宣讲会少了,连大厂的宣讲会也少了很多。目前这个行情多一份技能就多一份竞争,懂Python的需要再学点Java,会Java的也能撸起袖子写Python的测试脚本,技多不压身啊。
今晚小编收罗了一些高频的Python面试题,为大家的求职面试添砖加瓦,帮你打call加油!
1.如何用一行代码生成[1,3,5,7,9,11,13,15,17,19]
2 .写一个等差数列
产生一个首项为8,公差为12,末项不大于100的列表
3.一行代码求1到1000内的整数和
4.字典按Value排序并返回新字典
简单的一个字典排序问题,字典是Python最重要的三大基础数据结构
5. 打乱一个列表
使用random模块可以轻松搞定,不得不说这个random库其实很有用,里面有很多重要的函数值得大家熟练掌握
6.如何删除list里面的重复的元素并保证顺序并不变化
很多人第一时间会想到set(),set可以去重复的,但是不能保证列表元素的顺序,正确的玩法是这样的:
7.字符串处理成字典
输入一个长的字符串,如何快速的编程字典,简单的规则可以用split,如果是复杂的需要构造自定义的正则去处理。
8.怎么找出两个列表的相同元素和不同元素
给定两个列表,需要你快速的寻找相同的元素,可以用很多方法,自己写算法也可以直接用set里面的内置函数intersection()和difference()
9.输入一个日期,判断这一天是今年的哪一天
日期的使用也是非常常见的,面试的时候会经常问,Python里面的datatime模块能轻松处理大部分的日期问题
10.遍历目录内子目录,抓取zip文件
利用os模块,walk方法进行层层遍历所有的文件,os.path.splittext()返回文件的名字和扩展名,然后过滤。这道题的出镜率还是很高,小编曾经面试某H公司就被问到的
11.如果你的PC是4G内存,如何处理1个10G的csv文件
可以用两种方法,使用Python的生成器yield 分行读取,还有就是用Python里面的神器pandas,这个库是Python玩数据分析最最厉害的库,设置里面的read_csv函数的chunk值即可,pandas是用c语言写的,处理大数据速度很快
12.统计一个单词本里面频次最高的10个单词
使用yield进行数据读取逐行读取,然后用正则进行清洗,最后保存到defaultdict对象中。
13.如何反转一个整数,比如-12345 变成-54321
这道题目还是稍微有点复杂的,需要化解为下面几步处理:
- 如何x位于(-10,10)区间,直接返回;
- 然后把x转换为字符串的对象sx;
- 如果x是负数,截取sx[1:],并反转字符串;
- 如果x是正数,直接反转字符串;
- 最后使用内置函数int()转为整数;
14.lambda函数的形参和返回值
key值为lambda函数,说说lambda函数的形参和返回值?lambda函数在Python里面颇为神秘,用的好可以事半功倍,但是你是否真的理解它。
lambda的函数的形参为s,解包之后的元素值为{1,3,5,7},{1,5,7},{2,4,6,7,8}然后取它们的长度为4,3,5
15.使用filter()来求出列表中大于10的元素
filter函数配合lambda函数,可以轻松过滤
16.可变类型和不可变类型,列举3个
可变类型有list,dict,deque
不可变类型有字符串str,int,float,tuple
17. is 和==有什么区别
is 是用来判断两个对象的标示号(内存地址)是否相等
==是用来判断或者内容值是否相等
18.有什么方法可以获取类的所有属性和方法?
获取一个下面的类的所有属性和方法,可以使用dir()内置函数