分享几道你可能遇到的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 相关文章推荐
Python文件去除注释的方法
May 25 Python
详解python上传文件和字符到PHP服务器
Nov 24 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
Jun 13 Python
Python迭代器与生成器基本用法分析
Jul 26 Python
set在python里的含义和用法
Jun 24 Python
用python打印菱形的实操方法和代码
Jun 25 Python
python面试题之列表声明实例分析
Jul 08 Python
python openvc 裁剪、剪切图片 提取图片的行和列
Sep 19 Python
Django如何继承AbstractUser扩展字段
Nov 27 Python
利用python为PostgreSQL的表自动添加分区
Jan 18 Python
Requests什么的通通爬不了的Python超强反爬虫方案!
May 20 Python
深入解析NumPy中的Broadcasting广播机制
May 30 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
仿Aspnetpager的一个PHP分页类代码 附源码下载
2012/10/08 PHP
php一些错误处理的方法与技巧总结
2013/08/10 PHP
linux下安装php的memcached客户端
2014/08/03 PHP
php提交post数组参数实例分析
2015/12/17 PHP
PHP PDOStatement::nextRowset讲解
2019/02/01 PHP
Yii 框架使用Forms操作详解
2020/05/18 PHP
accesskey 提交
2006/06/26 Javascript
jquery获取input表单值的代码
2010/04/19 Javascript
js网页侧边随页面滚动广告效果实现
2011/04/14 Javascript
jquery上传插件fineuploader上传文件使用方法(jquery图片上传插件)
2013/12/05 Javascript
js强制把网址设为默认首页
2015/09/29 Javascript
一步步教会你微信小程序的登录鉴权
2018/04/09 Javascript
js简单的分页器插件代码实例
2019/09/11 Javascript
给Python中的MySQLdb模块添加超时功能的教程
2015/05/05 Python
在python中安装basemap的教程
2018/09/20 Python
解决Pycharm界面的子窗口不见了的问题
2019/01/17 Python
python opencv 二值化 计算白色像素点的实例
2019/07/03 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
2020/04/15 Python
python用TensorFlow做图像识别的实现
2020/04/21 Python
keras中的loss、optimizer、metrics用法
2020/06/15 Python
Python实现像awk一样分割字符串
2020/09/15 Python
纽约海:Sea New York
2018/11/04 全球购物
TUMI新加坡官网:国际领先的商旅箱包品牌
2019/01/12 全球购物
Flesh Beauty官网:露华浓集团旗下彩妆品牌
2021/02/15 全球购物
十一酒店活动方案
2014/02/20 职场文书
原材料检验岗位职责
2014/03/15 职场文书
技术比武方案
2014/05/19 职场文书
党在我心中的演讲稿
2014/09/13 职场文书
2014县委书记四风对照检查材料思想汇报
2014/09/21 职场文书
财政局党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
优秀教师个人材料
2014/12/15 职场文书
评职称个人总结
2015/03/05 职场文书
2015年安全员工作总结范文
2015/04/22 职场文书
横空出世观后感
2015/06/09 职场文书
导游词之苏州寒山寺
2019/12/05 职场文书