分享几道你可能遇到的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 相关文章推荐
tornado捕获和处理404错误的方法
Feb 26 Python
Python编程中对super函数的正确理解和用法解析
Jul 02 Python
python数据抓取分析的示例代码(python + mongodb)
Dec 25 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
Feb 26 Python
python爬取网页转换为PDF文件
Jun 07 Python
浅谈Python脚本开头及导包注释自动添加方法
Oct 27 Python
python实现邮件发送功能
Aug 10 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
Oct 14 Python
使用pygame写一个古诗词填空通关游戏
Dec 03 Python
解决TensorFlow程序无限制占用GPU的方法
Jun 30 Python
pycharm中使用request和Pytest进行接口测试的方法
Jul 31 Python
Python 发送邮件方法总结
Aug 10 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
php结合飞信 免费天气预报短信
2009/05/07 PHP
php实现的ping端口函数实例
2014/11/12 PHP
php目录遍历函数opendir用法实例
2014/11/20 PHP
phpMyAdmin安装并配置允许空密码登录
2015/07/04 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
实例介绍PHP删除数组中的重复元素
2019/03/03 PHP
基于jquery的一个拖拽到指定区域内的效果
2011/09/21 Javascript
jquery的冒泡事件的阻止与允许(三种实现方法)
2013/02/01 Javascript
js 得到文件后缀(通过正则实现)
2013/07/08 Javascript
jquery获取css中的选择器(实例讲解)
2013/12/02 Javascript
JQuery给元素绑定click事件多次执行的解决方法
2014/05/29 Javascript
JavaScript计算两个日期时间段内日期的方法
2015/03/16 Javascript
js+css实现上下翻页相册代码分享
2015/08/18 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
利用Vue.js指令实现全选功能
2016/09/08 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
2017/04/24 Javascript
微信小程序提交form操作示例
2018/12/30 Javascript
详解node和ES6的模块导出与导入
2020/02/19 Javascript
Vue Element校验validate的实例
2020/09/21 Javascript
Python中super()函数简介及用法分享
2016/07/11 Python
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
Python打包方法Pyinstaller的使用
2018/10/09 Python
Django打印出在数据库中执行的语句问题
2019/07/25 Python
python接口调用已训练好的caffe模型测试分类方法
2019/08/26 Python
Python上下文管理器用法及实例解析
2019/11/11 Python
如何搭建pytorch环境的方法步骤
2020/05/06 Python
使用keras2.0 将Merge层改为函数式
2020/05/23 Python
Python -m参数原理及使用方法解析
2020/08/21 Python
英国最大的在线奢侈手表零售商:Jura Watches
2018/01/29 全球购物
网络方面基础面试题
2012/11/16 面试题
在DELPHI中调用存储过程和使用内嵌SQL哪种方式更好
2016/11/22 面试题
新闻编辑自荐书范文
2014/02/12 职场文书
面试必备的求职信
2014/05/25 职场文书
2014年党支部承诺书
2014/05/30 职场文书
开平碉楼导游词
2015/02/06 职场文书
浅谈MySQL 亿级数据分页的优化
2021/06/15 MySQL