分享几道你可能遇到的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 getopt 参数处理小示例
Jun 09 Python
Django发送html邮件的方法
May 26 Python
Python使用matplotlib绘制三维图形示例
Aug 25 Python
解决pyinstaller打包pyqt5的问题
Jan 08 Python
django框架model orM使用字典作为参数,保存数据的方法分析
Jun 24 Python
Python Numpy计算各类距离的方法
Jul 05 Python
python控制台实现tab补全和清屏的例子
Aug 20 Python
Python3批量创建Crowd用户并分配组
May 20 Python
python多线程semaphore实现线程数控制的示例
Aug 10 Python
解决Python安装cryptography报错问题
Sep 03 Python
Python在线和离线安装第三方库的方法
Oct 31 Python
python模拟浏览器 使用selenium进入好友QQ空间并留言
Apr 12 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
在PWS上安装PHP4.0正式版
2006/10/09 PHP
PHP遍历某个目录下的所有文件和子文件夹的实现代码
2013/06/28 PHP
php实现的Captcha验证码类实例
2014/09/22 PHP
PHP函数func_num_args用法实例分析
2015/12/07 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
jQuery 使用个人心得
2009/02/26 Javascript
ExtJS 2.0实用简明教程之应用ExtJS
2009/04/29 Javascript
简单时间提示DEMO从0开始一直进行计时
2013/11/19 Javascript
关于jquery中全局函数each使用介绍
2013/12/10 Javascript
所见即所得的富文本编辑器bootstrap-wysiwyg使用方法详解
2016/05/27 Javascript
jQuery表单元素选择器代码实例
2017/02/06 Javascript
微信小程序使用map组件实现解析经纬度功能示例
2019/01/22 Javascript
Element Dialog对话框的使用示例
2020/07/26 Javascript
wxPython学习之主框架实例
2014/09/28 Python
Python二分法搜索算法实例分析
2015/05/11 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
python删除某个字符
2018/03/19 Python
Python做智能家居温湿度报警系统
2018/09/25 Python
python实现朴素贝叶斯算法
2018/11/19 Python
解决python执行不输出系统命令弹框的问题
2019/06/24 Python
详解如何减少python内存的消耗
2019/08/09 Python
python dataframe NaN处理方式
2019/12/26 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
2020/02/21 Python
HTML5: Web 标准最巨大的飞跃
2008/10/17 HTML / CSS
一张图片能隐含千言万语之隐藏你的程序代码
2012/12/13 HTML / CSS
HTML5拖拽的简单实例
2016/05/30 HTML / CSS
意大利奢华内衣制造商:Cosabella
2017/08/29 全球购物
俄罗斯一家时尚女装商店:Charuel
2019/12/04 全球购物
介绍下static、final、abstract区别
2015/01/30 面试题
《将心比心》教学反思
2014/04/08 职场文书
2014年社区工作总结
2014/11/18 职场文书
小学一年级数学教学计划
2015/01/20 职场文书
工作自我评价范文
2015/03/05 职场文书
写作技巧:如何撰写商业计划书
2019/08/08 职场文书
Rhit高效可视化Nginx日志查看工具
2021/11/01 Servers