分享几道你可能遇到的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对指定目录下文件进行批量重命名的方法
Apr 18 Python
深入解析Python中的list列表及其切片和迭代操作
Mar 13 Python
让Python更加充分的使用Sqlite3
Dec 11 Python
详解Python3中的迭代器和生成器及其区别
Oct 09 Python
Python File(文件) 方法整理
Feb 18 Python
Django框架封装外部函数示例
May 28 Python
使用python socket分发大文件的实现方法
Jul 08 Python
python实现简单的购物程序代码实例
Mar 03 Python
python实现提取COCO,VOC数据集中特定的类
Mar 10 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
Dec 14 Python
Python实例教程之检索输出月份日历表
Dec 16 Python
Pytorch 实现变量类型转换
May 17 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)
2010/09/04 PHP
PHP模板引擎Smarty的缓存使用总结
2014/04/24 PHP
新浪SAE云平台下使用codeigniter的数据库配置
2014/06/12 PHP
php调用shell的方法
2014/11/05 PHP
php导入excel文件到mysql数据库的方法
2015/01/14 PHP
codeigniter实现get分页的方法
2015/07/10 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
PHP中遍历数组的三种常用方法实例分析
2019/06/24 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
IE和Mozilla的兼容性汇总event
2007/08/12 Javascript
基于javascript的JSON格式页面展示美化方法
2014/07/02 Javascript
js中style.display=&quot;&quot;无效的解决方法
2014/10/30 Javascript
Javascript使用SWFUpload进行多文件上传
2016/11/16 Javascript
详解nodejs微信jssdk后端接口
2017/05/25 NodeJs
微信小程序 获取session_key和openid的实例
2017/08/17 Javascript
angular json对象push到数组中的方法
2018/02/27 Javascript
微信小程序解除10个请求并发限制
2018/12/18 Javascript
jQuery提示框插件SweetAlert用法分析
2019/08/05 jQuery
一行JavaScript代码如何实现瀑布流布局
2020/12/11 Javascript
python基于queue和threading实现多线程下载实例
2014/10/08 Python
python中使用xlrd、xlwt操作excel表格详解
2015/01/29 Python
详解Python中的Cookie模块使用
2015/07/06 Python
python控制台中实现进度条功能
2015/11/10 Python
基于python的Paxos算法实现
2019/07/03 Python
python爬虫之遍历单个域名
2019/11/20 Python
Pytorch中的VGG实现修改最后一层FC
2020/01/15 Python
如何基于python对接钉钉并获取access_token
2020/04/21 Python
Html5元素及基本语法详解
2016/08/02 HTML / CSS
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
销售人员中英文自荐信
2013/09/22 职场文书
自我评价个人范文
2013/12/16 职场文书
40岁生日感言
2014/02/15 职场文书
中学生家长评语大全
2014/04/16 职场文书
世界上超棒的8种逻辑思维
2019/08/06 职场文书
OpenCV实现普通阈值
2021/11/17 Java/Android