扣丁学堂盘点Python开发工程师常见十道面试题及答案

2017-12-29 10:04:20 529浏览

        今天扣丁学堂给大家整理了一下关于日常面试中Python开发工程师常见面试题及答案,下面我们一起来看一下吧。



       生成斐波那契数列并取前10项

       deffunc(m):

       n,a,b=0,1,1

       whilen<m:

       yielda

       a,b=b,a+b

       n+=1

       foroneinfunc(10):

       printone

       这个可以说是一道常见的简单算法题了,关键点就是理解a,b=b,a+b以及yield的作用。

       扩展一个列表,列表中的元素可能也包含列表

       defmyextend(alist):

       tmp=[]

       foroneinalist:

       ifisinstance(one,list):

       tmp.extend(myextend(one))

       else:
       
       tmp.append(one)

       returntmp

       t=[1,2,5,[3,[],5,2,[57]],90]

       printt

       printmyextend(t)

       考察递归调用的思想。

       有如下代码,请写出输出

       deftest(x,l=[]):

       foroinrange(x):

       l.append(o)

       printl
       
       test(3)

       test(1,[3,2,1])

       test(3)

       输出如下:

       [0,1,2]

       [3,2,1,0]

       [0,1,2,0,1,2]

       可变类型作为参数在不显示传递参数时,每次函数调用时候都是共用的;如果传递了参数(比如第二种)则不会互相影响。

       已知某列表中包含重复数据,保持列表中元素第一次出现的顺序并去重,要求复杂度为O(n)。

       deffun(alist):

       result=[]

       temp=set()

       foroinalist:

       ifonotintemp:

       result.append(o)

       temp.add(o)

       returnresult

       考察列表、集合等常见操作的复杂度。

       已知如下函数,请写出输出,并写出正确写法:

       z=[lambdax:x*iforiinrange(3)]

       x=[o(2)foroinz]

       printx

       输出为

       [4,4,4]

       这里主要考察python中闭包、返回值为函数时候的知识点。由于lambda函数共用了i变量,当调用时候i已经变成了2,所以输出都是4。

       改正:

       deffunc():

       defm(x):

       defn(y):

       returnx*y

       returnn

       return[f(one)foroneinrange(3)]

       z=func()

       x=[o(2)foroinz]

       printx

       输出

       [0,2,4]

       创建一个类,并输出某个属性。如果这个属性存在则输出值,否则输出这个属性名的字符串

       classMycls(object):

       a=0

       def__getattr__(self,name):

       printname

       z=Mycls()

       printz.a,z.b

       输出为

       0,b

       主要考察python的反射机制,以及类相关的__getattr__方法。

       注意:__getattr__方法和__getattribute__方法的区别,前者只有在属性不存在时候调用,返回一个值或者引发异常。而后者是每次都会被调用的。另外可以看看getattr(),hasattr()这种内置函数。

       以上就是关于扣丁学堂盘点Python最常见的10道面试题及答案介绍,最后想要了解更多资讯或学习Python开发请关注扣丁学堂官网和微信公众号。扣丁学堂作为知名的IT培训机构,不仅有专业的Python培训讲师和与时俱进的课程体系,还有大量的Python视频教程供学员观看学习,想要学好Python开发技术的小伙伴就抓紧时间行动吧。扣丁学堂Python技术交流群:279521237。



扣丁学堂微信公众号



【关注微信公众号获取更多学习资料】



查看更多关于"Python开发资讯"的相关文章>>


标签: Python视频教程 Python基础教程 Python爬虫 Python培训

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号