分享几道你可能遇到的python面试题


Posted in Python onJuly 24, 2017

本文主要给大家介绍的是关于最近在面试中遇到的几个python面试题,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍:

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

def func(m):
 n,a,b = 0,1,1
 while n < m:
 yield a
 a,b = b,a+b
 n += 1
for one in func(10):
 print one

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

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

def myextend(alist):
 tmp = []
 for one in alist:
  if isinstance(one,list):
   tmp.extend(myextend(one))
  else:
   tmp.append(one)
 return tmp
t = [1,2,5,[3,[],5,2,[57]],90]
print t
print myextend(t)

考察递归调用的思想。

三、有如下代码,请写出输出

def test(x,l=[]):
 for o in range(x):
  l.append(o)
 print l
test(3)
test(1,[3,2,1])
test(3)

输入如下:

[0,1,2]
[3,2,1,0]
[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]
print x

输出为[4,4,4]

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

改正:

def func():
 def m(x):
  def n(y):
   return x * y
  return n
 return [f(one) for one in range(3)]
z = func()
x = [o(2) for o in z]
print x

输出[0,2,4]

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

class Mycls(object):
 a = 0
 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三种模型

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Eclipse中Python开发环境搭建简单教程
Mar 23 Python
实例解析Python的Twisted框架中Deferred对象的用法
May 25 Python
python中解析json格式文件的方法示例
May 03 Python
python中的set实现不重复的排序原理
Jan 24 Python
python 列表,数组和矩阵sum的用法及区别介绍
Jun 28 Python
python利用Tesseract识别验证码的方法示例
Jan 21 Python
matplotlib实现显示伪彩色图像及色度条
Dec 07 Python
Python库skimage绘制二值图像代码实例
Apr 10 Python
Python PyQt5模块实现窗口GUI界面代码实例
May 12 Python
Python并发请求下限制QPS(每秒查询率)的实现代码
Jun 05 Python
python绘制高斯曲线
Feb 19 Python
python在协程中增加任务实例操作
Feb 28 Python
python 判断是否为正小数和正整数的实例
Jul 23 #Python
python WindowsError的错误代码详解
Jul 23 #Python
python实现发送邮件功能
Jul 22 #Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
Jul 22 #Python
Python原始字符串与Unicode字符串操作符用法实例分析
Jul 22 #Python
安装Python的教程-Windows
Jul 22 #Python
Python编程之字符串模板(Template)用法实例分析
Jul 22 #Python
You might like
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
php数组键值用法实例分析
2015/02/27 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
2015/03/23 PHP
老生常谈PHP面向对象之命令模式(必看篇)
2017/05/24 PHP
JAVASCRIPT style 中visibility和display之间的区别
2010/01/22 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
jQuery Dialog 取消右上角删除按钮事件
2016/09/07 Javascript
js处理层级数据结构的方法小结
2017/01/17 Javascript
JSON与js对象序列化实例详解
2017/03/16 Javascript
Ionic + Angular.js实现图片轮播的方法示例
2017/05/21 Javascript
Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
2017/06/09 jQuery
jQuery实现腾讯信用界面(自制刻度尺)样式
2017/08/15 jQuery
react中的ajax封装实例详解
2017/10/17 Javascript
小程序实现人脸识别功能(百度ai)
2018/12/23 Javascript
js实现鼠标拖拽缩放div实例代码
2019/03/25 Javascript
微信小程序使用蓝牙小插件
2019/09/23 Javascript
JavaScript进制转换实现方法解析
2020/01/18 Javascript
VSCode 添加自定义注释的方法(附带红色警戒经典注释风格)
2020/08/27 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
Python装饰器的函数式编程详解
2015/02/27 Python
python中OrderedDict的使用方法详解
2017/05/05 Python
Python正则捕获操作示例
2017/08/19 Python
python操作redis方法总结
2018/06/06 Python
python操作小程序云数据库实现简单的增删改查功能
2019/06/06 Python
Python+opencv+pyaudio实现带声音屏幕录制
2019/12/23 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
2020/03/12 Python
Python基于DB-API操作MySQL数据库过程解析
2020/04/23 Python
python 进程池pool使用详解
2020/10/15 Python
css3新单位vw、vh的使用教程
2018/03/23 HTML / CSS
一张图片能隐含千言万语之隐藏你的程序代码
2012/12/13 HTML / CSS
具有防紫外线功能的高性能钓鱼服装:Hook&Tackle
2018/08/16 全球购物
意大利奢侈品购物网站:Deliberti
2019/10/08 全球购物
上海期货面试题
2014/01/31 面试题
现代化办公人员工作的自我评价
2013/10/16 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
2019教师的学习计划
2019/06/25 职场文书