分享几道你可能遇到的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通过select实现异步IO的方法
Jun 04 Python
利用Python学习RabbitMQ消息队列
Nov 30 Python
Python 40行代码实现人脸识别功能
Apr 02 Python
Django 如何获取前端发送的头文件详解(推荐)
Aug 15 Python
python爬虫项目设置一个中断重连的程序的实现
Jul 26 Python
更新pip3与pyttsx3文字语音转换的实现方法
Aug 08 Python
python实现一个点绕另一个点旋转后的坐标
Dec 04 Python
Python读取表格类型文件代码实例
Feb 17 Python
python实现门限回归方式
Feb 29 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
Mar 10 Python
Django实现后台上传并显示图片功能
May 29 Python
浅谈keras使用中val_acc和acc值不同步的思考
Jun 18 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 IP转换整形(ip2long)的详解
2013/06/06 PHP
必须收藏的php实用代码片段
2016/02/02 PHP
php JWT在web端中的使用方法教程
2018/09/06 PHP
Yii框架引入coreseek分页功能示例
2019/02/08 PHP
用JavaScript脚本实现Web页面信息交互
2006/12/21 Javascript
javascript中对对层的控制
2006/12/29 Javascript
jquery上传插件fineuploader上传文件使用方法(jquery图片上传插件)
2013/12/05 Javascript
JS实现alert中显示换行的方法
2015/12/17 Javascript
JS常用函数和常用技巧小结
2016/10/15 Javascript
过期软件破解办法实例详解
2017/01/04 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
详解使用vue实现tab 切换操作
2017/07/03 Javascript
jQuery图片查看插件Magnify开发详解
2017/12/25 jQuery
Vue打包后出现一些map文件的解决方法
2018/02/13 Javascript
浅析Vue中method与computed的区别
2018/03/06 Javascript
vue开发环境配置跨域的方法步骤
2019/01/16 Javascript
vue基础之data存储数据及v-for循环用法示例
2019/03/08 Javascript
深入理解Node内建模块和对象
2019/03/12 Javascript
微信域名检测接口调用演示步骤(含PHP、Python)
2019/12/08 Javascript
原生JS生成指定位数的验证码
2020/10/28 Javascript
[03:11]TI9战队档案 - Alliance
2019/08/20 DOTA
pygame 精灵的行走及二段跳的实现方法(必看篇)
2017/07/10 Python
Python实现文件内容批量追加的方法示例
2017/08/29 Python
详解Python 协程的详细用法使用和例子
2018/06/15 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
CSS3 :nth-child()伪类选择器实现奇偶行显示不同样式
2013/11/05 HTML / CSS
Html5之自定义属性(data-,dataset)
2019/11/19 HTML / CSS
Tiqets荷兰:出售欧洲最美丽的景点和博物馆门票
2018/01/09 全球购物
size?荷兰官方网站:英国高级运动鞋精品店
2020/07/24 全球购物
大学生就业策划书范文
2014/04/04 职场文书
食品销售计划书
2014/04/26 职场文书
圣诞晚会主持词开场白
2015/05/28 职场文书
2016党校学习心得体会
2016/01/07 职场文书
超级实用!五步法则,教你写好年终工作总结
2019/12/05 职场文书
pandas 操作 Excel操作总结
2021/03/31 Python
Linux系统下安装PHP7.3版本
2021/06/26 PHP