用Python刷面试算法刷题网站题是怎样的体验

分享几道你可能遇到的python面试题
作者:Hi!Roy!
字体:[ ] 类型:转载 时间:
最近去笔试,在面试过程中遇到了几个编程题,比较基础。所以想着总结一下,所以下面这篇文章主要给大家分享了几道你可能遇到的python面试题,文中给出了详细的示例代码供大家参考学习,需要的朋友们下面来一起看看吧。
本文主要给大家介绍的是关于最近在面试中遇到的几个python面试题,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍:
一、生成斐波那契数列并取前10项
def func(m):
n,a,b = 0,1,1
while n & m:
a,b = b,a+b
for one in func(10):
这个可以说是一道常见的简单算法题了,关键点就是理解a,b=b,a+b以及yield的作用。
二、扩展一个列表,列表中的元素可能也包含列表
def myextend(alist):
for one in alist:
if isinstance(one,list):
tmp.extend(myextend(one))
tmp.append(one)
return tmp
t = [1,2,5,[3,[],5,2,[57]],90]
print myextend(t)
考察递归调用的思想。
三、有如下代码,请写出输出
def test(x,l=[]):
for o in range(x):
l.append(o)
test(1,[3,2,1])
输入如下:
[0,1,2,0,1,2]
可变类型作为参数在不显示传递参数时,每次函数调用时候都是共用的;如果传递了参数(比如第二种)则不会互相影响。
四、已知某列表中包含重复数据,保持列表中元素第一次出现的顺序并去重,要求复杂度为O(n)。
def fun(alist):
result = []
temp = set()
for o in alist:
if o not in temp:
result.append(o)
temp.add(o)
return result
考察列表、集合等常见操作的复杂度。
五、已知如下函数,请写出输出,并写出正确写法:
z = [lambda x:x*i for i in range(3)]
x = [o(2) for o in z]
输出为[4,4,4]
这里主要考察python中闭包、返回值为函数时候的知识点。由于lambda函数共用了i变量,当调用时候i已经变成了2,所以输出都是4。
def func():
return x * y
return [f(one) for one in range(3)]
z = func()
x = [o(2) for o in z]
输出[0,2,4]
六、创建一个类,并输出某个属性。如果这个属性存在则输出值,否则输出这个属性名的字符串
class Mycls(object):
def __getattr__(self,name):
print name
z = Mycls()
print z.a,z.b
输出为0,b。
主要考察python的反射机制,以及类相关的__getattr__方法。
注意: __getattr__方法和__getattribute__方法的区别,前者只有在属性不存在时候调用,返回一个值或者引发异常。而后者是每次都会被调用的。
另外可以看看getattr() ,hasattr()这种内置函数。
简述py2和py3的区别
python的垃圾回收机制
python中多线程的方法,局限,以及有什么其他方式进行并发处理
简述epoll、select、poll三种模型
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具用Python刷面试算法题(如leetcode)是怎样的体验? - 知乎567被浏览84027分享邀请回答05 条评论分享收藏感谢收起(DoctorMia)
(arsenAlexander)
第三方登录:}

我要回帖

更多关于 java算法面试题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信