分享几道你可能遇到的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中readline判断文件读取结束的方法
Nov 08 Python
使用Python进行QQ批量登录的实例代码
Jun 11 Python
django如何连接已存在数据的数据库
Aug 14 Python
python判断一个数是否能被另一个整数整除的实例
Dec 12 Python
对Python 获取类的成员变量及临时变量的方法详解
Jan 22 Python
python urllib爬虫模块使用解析
Sep 05 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
Feb 09 Python
python异常处理、自定义异常、断言原理与用法分析
Mar 23 Python
python 读取二进制 显示图片案例
Apr 24 Python
全网首秀之Pycharm十大实用技巧(推荐)
Apr 27 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
Jan 29 Python
python 三边测量定位的实现代码
Apr 22 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的bbs设计(五)
2006/10/09 PHP
php中函数的形参与实参的问题说明
2010/09/01 PHP
利用浏览器的Javascript控制台调试PHP程序
2014/01/08 PHP
将酷狗krc歌词解析并转换为lrc歌词php源码
2014/06/20 PHP
php模拟用户自动在qq空间发表文章的方法
2015/01/07 PHP
ThinkPHP简单使用memcache缓存的方法
2016/11/15 PHP
实例化php类时传参的方法分析
2020/06/05 PHP
犀利的js 函数集合
2009/06/11 Javascript
jquery验证手机号码、邮箱格式是否正确示例代码
2013/07/28 Javascript
JS保留两位小数,多位小数的示例代码
2014/01/07 Javascript
javascript 数组操作详解
2015/01/29 Javascript
基于jQuery实现表格内容的筛选功能
2016/08/21 Javascript
jQuery自定义组件(导入组件)
2016/11/08 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
2020/03/27 Javascript
JavaScript事件处理程序详解
2017/09/19 Javascript
Express下采用bcryptjs进行密码加密的方法
2018/02/07 Javascript
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
微信小程序tabbar底部导航
2018/11/05 Javascript
Vue使用虚拟dom进行渲染view的方法
2019/12/26 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
JS替换字符串中指定位置的字符(多种方法)
2020/05/28 Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
2020/06/05 Javascript
[59:59]EG vs IG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python3结合Dlib实现人脸识别和剪切
2018/01/24 Python
pytorch中的transforms模块实例详解
2019/12/31 Python
linux环境下安装python虚拟环境及注意事项
2020/01/07 Python
django admin 添加自定义链接方式
2020/03/11 Python
Python Switch Case三种实现方法代码实例
2020/06/18 Python
美国婚礼和派对礼品网站:Kate Aspen(新娘送礼会、迎婴派对)
2018/03/28 全球购物
计算机大学生的自我评价
2013/10/15 职场文书
无故旷工检讨书
2014/01/26 职场文书
留学自荐信写作方法
2014/01/27 职场文书
2015年大学生入党自荐书
2015/03/24 职场文书
实习推荐信格式模板
2015/03/27 职场文书
2015年公路路政个人工作总结
2015/07/24 职场文书
利用Python脚本写端口扫描器socket,python-nmap
2022/07/23 Python