分享几道你可能遇到的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之编写类之四再论继承
Oct 11 Python
零基础写python爬虫之使用Scrapy框架编写爬虫
Nov 07 Python
python杀死一个线程的方法
Sep 06 Python
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
Jun 20 Python
python爬取淘宝商品详情页数据
Feb 23 Python
PyQt5实现下载进度条效果
Apr 19 Python
pandas使用apply多列生成一列数据的实例
Nov 28 Python
numpy.where() 用法详解
May 27 Python
python实现的汉诺塔算法示例
Oct 23 Python
python从内存地址上加载python对象过程详解
Jan 08 Python
python 错误处理 assert详解
Apr 20 Python
Python+MySQL随机试卷及答案生成程序的示例代码
Feb 01 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判断变量是否为0的方法
2014/02/08 PHP
php获取汉字拼音首字母的方法
2015/10/21 PHP
PHP获取用户客户端真实IP的解决方案
2016/10/10 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
浅谈Laravel中的一个后期静态绑定
2017/08/11 PHP
PDO::prepare讲解
2019/01/29 PHP
javascript string字符串优化问题
2011/07/31 Javascript
JS中数组Array的用法示例介绍
2014/02/20 Javascript
js+html5实现canvas绘制镂空字体文本的方法
2015/06/05 Javascript
完美实现bootstrap分页查询
2015/12/09 Javascript
javascript中JSON.parse()与eval()解析json的区别
2016/05/19 Javascript
VC调用javascript的几种方法(推荐)
2016/08/09 Javascript
JavaScript中 this 指向问题深度解析
2017/02/21 Javascript
javascript 通过键名获取键盘的keyCode方法
2017/12/31 Javascript
nuxt.js 缓存实践
2018/06/25 Javascript
layui添加动态菜单与选项卡
2019/07/26 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
2020/05/31 Javascript
angular中的post请求处理示例详解
2020/06/30 Javascript
python 从远程服务器下载日志文件的程序
2013/02/10 Python
Python实现的文本简单可逆加密算法示例
2017/05/18 Python
Python爬虫设置代理IP(图文)
2018/12/23 Python
Python 的AES加密与解密实现
2019/07/09 Python
通过PHP与Python代码对比的语法差异详解
2019/07/10 Python
pycharm实现在子类中添加一个父类没有的属性
2020/03/12 Python
使用python求斐波那契数列中第n个数的值示例代码
2020/07/26 Python
CSS3的Border-radius轻松制作圆角
2012/12/24 HTML / CSS
纯css3实现图片翻牌特效
2015/03/10 HTML / CSS
美国在线鲜花速递:ProFlowers
2017/01/05 全球购物
电大自我鉴定范文
2013/10/01 职场文书
安全员岗位职责
2013/11/11 职场文书
党员培训思想汇报
2014/01/07 职场文书
2014年党员自我评议对照检查材料
2014/09/20 职场文书
致短跑运动员加油稿
2015/07/21 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书
php字符串倒叙
2021/04/01 PHP
服务器间如何实现文件共享
2022/05/20 Servers