分享几道你可能遇到的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自动连接ssh的方法
Mar 07 Python
Python实时获取cmd的输出
Dec 13 Python
基于Django contrib Comments 评论模块(详解)
Dec 08 Python
python中字符串变二维数组的实例讲解
Apr 03 Python
python opencv实现图片旋转矩形分割
Jul 26 Python
python使用tornado实现登录和登出
Jul 28 Python
Python sklearn KFold 生成交叉验证数据集的方法
Dec 11 Python
Python数据类型之List列表实例详解
May 08 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
Jul 19 Python
tensorflow查看ckpt各节点名称实例
Jan 21 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
Jan 25 Python
浅谈Python从全局与局部变量到装饰器的相关知识
Jun 21 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
上海无线电三厂简史修改版
2021/03/01 无线电
php对二维数组进行排序的简单实例
2013/12/19 PHP
php获取访问者浏览页面的浏览器类型
2017/01/23 PHP
用Laravel Sms实现laravel短信验证码的发送的实现
2018/11/29 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
2019/03/30 PHP
JXTree对象,读取外部xml文件数据,生成树的函数
2007/04/02 Javascript
web前端开发也需要日志
2010/12/09 Javascript
JS Map 和 List 的简单实现代码
2013/07/08 Javascript
extjs 分页使用jsp传递数据示例
2014/07/29 Javascript
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
JS实现浏览器状态栏显示时间的方法
2015/10/27 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
2016/06/29 Javascript
JavaScript正则表达式小结(test|match|search|replace|split|exec)
2016/12/08 Javascript
js移动端图片压缩上传功能
2020/08/18 Javascript
nodejs使用http模块发送get与post请求的方法示例
2018/01/08 NodeJs
javascript面向对象三大特征之继承实例详解
2019/07/24 Javascript
vue使用swiper实现中间大两边小的轮播图效果
2019/11/24 Javascript
[01:34]完美“圣”典宣传片震撼发布,12.17与你不见不散
2016/12/16 DOTA
[04:50]2019DOTA2高校联赛秋季赛四强集锦
2019/12/27 DOTA
python3.3教程之模拟百度登陆代码分享
2014/01/16 Python
Python中http请求方法库汇总
2016/01/06 Python
python 使用socket传输图片视频等文件的实现方式
2019/08/07 Python
Python从文件中读取指定的行以及在文件指定位置写入
2019/09/06 Python
Python更新所有已安装包的操作
2020/02/13 Python
简单的命令查看安装的python版本号
2020/08/28 Python
python能做哪些生活有趣的事情
2020/09/09 Python
佳能加拿大网上商店:Canon eStore Canada
2018/04/04 全球购物
咨询公司各岗位职责
2013/12/02 职场文书
大学生学习党课思想汇报
2014/01/03 职场文书
工商行政管理专业求职书
2014/05/23 职场文书
4s店活动策划方案
2014/08/25 职场文书
2015国庆66周年宣传语
2015/07/14 职场文书
反邪教教育心得体会
2016/01/15 职场文书
公务员廉洁从政心得体会
2016/01/19 职场文书
详解MySQL的半同步
2021/04/22 MySQL
redis实现的四种常见限流策略
2021/06/18 Redis