2018年 Python面试必看的10个问题及答案

最近开始整理python的资料,博主建立了一个qq群,希望给大家提供一个交流的同平台 938587844 。

找工作是每个学习Python人员的目标,为了更好的找到工作,刷面试题是必不可少的,了解最新企业招聘试题,可以让你面试更加的顺利。小编整理了一些2018年最新的Python面试题,来测测你技术的掌握度吧。

1、Python里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别)

  • 答:赋值(=),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。

浅拷贝:创建一个新的对象,但它包含的是对原始对象中包含项的引用(如果用引用的方式修改其中一个对象,另外一个也会修改改变){1,完全切片方法;2,工厂函数,如list();3,copy模块的copy()函数}

深拷贝:创建一个新的对象,并且递归的复制它所包含的对象(修改其中一个,另外一个不会改变){copy模块的deep.deepcopy()函数}

2、Python里面match()和search()的区别?

  • 答:re模块中match(pattern,string[,flags]),检查string的开头是否与pattern匹配。

re模块中research(pattern,string[,flags]),在string搜索pattern的第一个匹配值。

>>>print(re.match(‘super’, ‘superstition’).span())

(0, 5)

>>>print(re.match(‘super’, ‘insuperable’))

None

>>>print(re.search(‘super’, ‘superstition’).span())

(0, 5)

>>>print(re.search(‘super’, ‘insuperable’).span())

(2, 7)

3、有没有一个工具可以帮助查找python的bug和进行静态的代码分析?

  • 答:PyChecker是一个python代码的静态分析工具,它可以帮助查找python代码的bug, 会对代码的复杂度和格式提出警告

Pylint是另外一个工具可以进行codingstandard检查

4、简要描述Python的垃圾回收机制(garbage collection)。

  • 答案

这里能说的很多。你应该提到下面几个主要的点:

Python在内存中存储了每个对象的引用计数(reference count)。如果计数值变成0,那么相应的对象就会小时,分配给该对象的内存就会释放出来用作他用。

偶尔也会出现引用循环(reference cycle)。垃圾回收器会定时寻找这个循环,并将其回收。举个例子,假设有两个对象o1和o2,而且符合o1.x == o2和o2.x == o1这两个条件。如果o1和o2没有其他代码引用,那么它们就不应该继续存在。但它们的引用计数都是1。

Python中使用了某些启发式算法(heuristics)来加速垃圾回收。例如,越晚创建的对象更有可能被回收。对象被创建之后,垃圾回收器会分配它们所属的代(generation)。每个对象都会被分配一个代,而被分配更年轻代的对象是优先被处理的。

5、什么是lambda函数?它有什么好处?

  • 答:lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数

lambda函数:首要用途是指点短小的回调函数

lambda [arguments]:expression

>>> a=lambdax,y:x+y

>>> a(3,11)

6、请写出一段Python代码实现删除一个list里面的重复元素

  • 答:

1,使用set函数,set(list)

2,使用字典函数,

>>>a=[1,2,4,2,4,5,6,5,7,8,9,0]

>>> b={}

>>>b=b.fromkeys(a)

>>>c=list(b.keys())

>>> c

最近开始整理python的资料,博主建立了一个qq群,希望给大家提供一个交流的同平台 938587844 。

7、用Python匹配HTML tag的时候,<.>和<.?>有什么区别?

  • 答:术语叫贪婪匹配( <.> )和非贪婪匹配(<.?> )

例如:

test

<.*> :

test

<.*?> :

8、如何在一个function里面设置一个全局的变量?

  • 答:解决方法是在function的开始插入一个global声明:

    
    def f()

global x

#   9、编程用sort进行排序,然后从最后一个元素开始判断
*    答:

a=[1,2,4,2,4,5,7,10,5,5,7,8,9,0,3]

a.sort()

last=a[-1]

for i inrange(len(a)-2,-1,-1):

if last==a[i]:

del a[i]

else:last=a[i]

print(a)

#   10、下面的代码在Python2中的输出是什么?解释你的答案
*    答:

def div1(x,y):

print "%s/%s = %s" % (x, y, x/y)

def div2(x,y):

print "%s//%s = %s" % (x, y, x//y)

div1(5,2)

div1(5.,2)

div2(5,2)

div2(5.,2.)

另外,在Python3中上面的代码的输出有何不同(假设代码中的print语句都转化成了Python3中的语法结构)?

在Python2中,代码的输出是:

5/2 = 2

5.0/2 = 2.5

5//2 = 2

5.0//2.0 = 2.0

默认情况下,如果两个操作数都是整数,Python2默认执行整数运算。所以,5/2 结果是2,而5./2结果是2.5

注意你可以通过下面的import语句来覆盖Python2中的这一行为

fromfuture import division


还要注意“双斜杠”(//)操作符将会一直执行整除,忽略操作数的类型。这就是为什么5.0//2.0即使在Python2中结果也是2.0

但是在Python3并没有这一行为。两个操作数都是整数时,也不执行整数运算。在Python3中,输出如下:

5/2 = 2.5

5.0/2 = 2.5

5//2 = 2

5.0//2.0 = 2.0



【搜索圆方圆,获得“python教程”,“python下载”,“python入门”类相关信息。】

原文地址:https://blog.51cto.com/14225278/2358978

时间: 2024-10-08 13:20:13

2018年 Python面试必看的10个问题及答案的相关文章

学习推荐系统必看的10篇RecSys论文,收藏!(官方推荐)

导读:深入学习任何一门学科,都离不开对前沿知识的了解.对于推荐系统学习者来说,一年一度的RecSys大会就是了解学术界与工业界研究热点的最佳平台.鉴于此,在这篇文章中,我们把过往的RecSys论文整理成一个清单,列出了大家学习推荐系统必看的10篇RecSys论文. 下边这5篇是根据ACM数字图书馆中的阅读量整理出来的.在已发表的925篇论文中,这五篇论文是阅读量最高的.这五篇论文约占所有RecSys会议论文引用的12%! · Performance of recommender algorith

8个Python面试必考的题目,小编也被坑过 ToT

写在前面 小编学习Python已经三年多了,现在稳定在一家公司快一年了,回想起来一年以前的面试经历真的有点胆战心惊啊! 因为面试题目一不小心就会被坑啊~ 你经历过绝望么? 当你被Python面试题目坑到的时候内心真的一万个草泥马徘徊在心中啊o(╥﹏╥)o 下面小编就分享一些小编亲身经历过的一些Python神坑面试题哦~ 干货来了 1.下面这段代码的输出结果是什么?请解释. def extendList(val, list=[]): list.append(val) return list lis

超实用面试必看,Python工程师面试题

面试是公司挑选职工的一种重要方法.它给公司和应招者提供了进行双向交流的机会,能使公司和应招者之间相互了解,从而双方都可更准确做出聘用与否.受聘与否的决定.Python后端工程师面试题目有哪些? 1.推荐一本看过最好的python书籍? 2.python适合的场景有哪些?当遇到计算密集型任务怎么办? 3.tcp/udp的区别?tcp粘包是怎么回事,如何处理?udp有粘包吗? 4.time_wait是什么情况?出现过多的close_wait可能是什么原因? 3.epoll,select的区别?边缘触

php程序员必看的10个细节

PHP不能不看的50个细节! 1. 用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量, 单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的”函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故 把函数加上了双引号). 2.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍.       3.$row[‘id’] 的速度是$row[id]的7倍.       4.echo 比 pr

iOS面试必看,最全梳理

http://www.cocoachina.com/ios/20160323/15770.html 序言 目前形势,参加到iOS队伍的人是越来越多,甚至已经到供过于求了.今年,找过工作人可能会更深刻地体会到今年的就业形势不容乐观,加之,培训机构一火车地向用人单位输送iOS开发人员,打破了生态圈的动态平衡.矫情一下,言归正传,我奉献一下,为iOS应聘者梳理一下面试题,希望能助一臂之力! OC的理解与特性 OC作为一门面向对象的语言,自然具有面向对象的语言特性:封装.继承.多态.它既具有静态语言的特

linux c++ 服务器端开发面试必看书籍

摘自别人博客,地址:http://www.cnblogs.com/nancymake/p/6516798.html 摘自别人博客,地址:http://blog.csdn.net/qianggezhishen/article/details/45951095 打算从这开始一本一本开始看 题外话: 推荐一个 github 上的 开源书籍,有各种语言版本的,建议看 英文版 ,当然也有 中文版 非常之棒!! 一.算法基础系列 数据结构基础(C语言版)>朱仲涛 译 <剑指Offer> <编程

面试必看|如何避免减分项雷区,看面试官筛选简历八大关键点

金三银四跳槽季已经结束了,铜五铁六的情况也不容乐观.我和同事们看了很多简历,也邀请了很多人参加面试,最终通过的寥寥无几. 想必很多面试者都很郁闷,为什么投了这么多简历,最后都杳无音讯.是简历的问题吗? 今天就来聊点扎心的事儿,面试官是怎么在短时间内筛选简历的.哪些是明显的减分项.请大家扬长避短,把简历尽量写得漂亮一些. 本文观点仅代表参与讨论的几位 BAT 同学. 教育背景不够好 首先,大公司筛选简历确实是"英雄不问出处"的. 不管你来自高大上的常春藤还是国内不显眼的二本院校,不管你是

面试必看:java面试考点干货精讲视频教程

Java作为目前比较火的计算机语言之一,连续几年蝉联最受程序员欢迎的计算机语言榜首,因此每年新入职Java程序员也数不胜数.很多java程序员在学成之后,会面临着就业的问题.在面试的过程中,面试技巧是一项很重要的能力. 今天要给大家介绍的是一个java经典面试套路精讲视频教程,需要的朋友可以看看,希望能帮助到大家! 课程目录: 第一节. String Stringbuffer Stringbuilder 深度解析第二节. 完美回答面试题Int 与Integer的区别第三节. 以数据结构挖掘集合面

[TimLinux] Python 初学者必看

1. 为什么用Python 软件质量:Python注重可读性.一致性和软件质量. 提高开发者的效率:Python代码的大小往只有C++/Java代码的1/5 ~ 1/3. 程序的可移植性:绝大多数Python程序不需要修改,即可运行在Linux.Windows等系统上. 标准库的支持:内置众多预编译兵可移植的功能模块(标准库). 组件集成:能够用Python代码调用C/C++的库,能够与其他编程语言高效集成到一起. 享受乐趣:Python易用.强大的标准库 2. 软件质量 从哲学理念上讲,Pyt