分享几道你可能遇到的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实现简单QQ单用户机器人的方法
Jul 03 Python
python获取指定路径下所有指定后缀文件的方法
May 26 Python
轻松实现TensorFlow微信跳一跳的AI
Jan 05 Python
python3.5 tkinter实现页面跳转
Jan 30 Python
numpy中的高维数组转置实例
Apr 17 Python
python设置值及NaN值处理方法
Jul 03 Python
python pandas消除空值和空格以及 Nan数据替换方法
Oct 30 Python
python logging添加filter教程
Dec 24 Python
CentOS 7如何实现定时执行python脚本
Jun 24 Python
python中的装饰器该如何使用
Jun 18 Python
python opencv将多个图放在一个窗口的实例详解
Feb 28 Python
详解在OpenCV中如何使用图像像素
Mar 03 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
MySQL数据源表结构图示
2008/06/05 PHP
ajax php 实现写入数据库
2009/09/02 PHP
php中定义网站根目录的常用方法
2010/08/08 PHP
PHP实现PDO的mysql数据库操作类
2014/12/12 PHP
php抽象类用法实例分析
2015/07/07 PHP
php微信开发之图片回复功能
2018/06/14 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
php中try catch捕获异常实例详解
2020/08/06 PHP
Prototype Object对象 学习
2009/07/12 Javascript
jQuery实战之品牌展示列表效果
2011/04/10 Javascript
JS 精确统计网站访问量的实例代码
2013/07/05 Javascript
div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox
2013/08/29 Javascript
JavaScript调试技巧之console.log()详解
2014/03/19 Javascript
iframe实用操作锦集
2014/04/22 Javascript
jQuery多级联动下拉插件chained用法示例
2016/08/20 Javascript
jquery自定义表单验证插件
2016/10/12 Javascript
jQuery实现ToolTip元素定位显示功能示例
2016/11/23 Javascript
Bootstrap弹出框之自定义悬停框标题、内容和样式示例代码
2017/07/11 Javascript
Vue常用指令详解分析
2018/08/19 Javascript
Python的Django框架使用入门指引
2015/04/15 Python
Python在Windows和在Linux下调用动态链接库的教程
2015/08/18 Python
用 Python 爬了爬自己的微信朋友(实例讲解)
2017/08/25 Python
python3调用R的示例代码
2018/02/23 Python
python中利用zfill方法自动给数字前面补0
2018/04/10 Python
和孩子一起学习python之变量命名规则
2018/05/27 Python
python多进程提取处理大量文本的关键词方法
2018/06/05 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
印尼在线旅游门户网站:NusaTrip
2019/11/01 全球购物
机械电子工程专业推荐信范文
2013/11/20 职场文书
美丽乡村建设实施方案
2014/03/23 职场文书
向国旗敬礼活动总结
2014/09/27 职场文书
三八红旗手事迹材料
2014/12/26 职场文书
医院财务人员岗位职责
2015/04/14 职场文书
北京大学中文系教授推荐的10本小说
2019/08/08 职场文书
MySQL创建定时任务
2022/01/22 MySQL