Python面试题及答案.docx
精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -vip 会员免费2021年最新 Python面试题及答案找工作是每个学习Python 人员的目标,为了更好的找到工作,刷面试题是 必不行少的, 明白最新企业聘请试题, 可以让你面试更加的顺当。小编整理了一些 20XX年最新的 Python 面试题,来测测你技术的把握度吧。1、Python 里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区分) 答:赋值( =),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。浅拷贝: 创建一个新的对象, 但它包含的是对原始对象中包含项的引用(假如用引用的方式修改其中一个对象, 另外一个也会修改转变) 1, 完全切片方法。 2,工厂函数,如 list。 3, copy 模块的 copy 函数深拷贝: 创建一个新的对象, 并且递归的复制它所包含的对象(修改其中一个,另外一个不会转变)copy 模块的 deep.deepcopy 函数2、Python 里面 match 和 search的区分?答:re 模块中 matchpattern,string,flags,检查 string的开头是否与pattern匹配。re 模块中 researchpattern,string,flags,在 string搜寻 pattern的第一个匹配值。>>>printre.match0, 5super ,superstition>>>printre.matchNonesuper ,insuperable.span可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 1 页,共 6 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -vip 会员免费>>>printre.searchsuper ,superstition.span0, 5>>>printre.searchsuper ,insuperable.span2, 73、有没有一个工具可以帮忙查找python 的 bug 和进行静态的代码分析? 答:PyChecker 是一个 python 代码的静态分析工具, 它可以帮忙查找python代码的 bug,会对代码的复杂度和格式提出警告Pylint是另外一个工具可以进行codingstandard检查4、简要描述 Python 的垃圾回收机制( garbage collection)。答案这里能说的许多。你应当提到下面几个主要的点:Python 在内存中储备了每个对象的引用计数(referencecount )。假如计数值变成 0,那么相应的对象就会小时,安排给该对象的内存就会释放出来用作他用。有时也会显现引用循环(reference cycle)。垃圾回收器会定时查找这个 循环,并将其回收。举个例子,假设有两个对象o1 和 o2,而且符合 o1.x = o2和 o2.x = o1这两个条件。假如o1 和 o2 没有其他代码引用,那么它们就不应 该连续存在。但它们的引用计数都是1。Python 中使用了某些启示式算法( heuristics )来加速垃圾回收。例如, 越晚创建的对象更有可能被回收。 对象被创建之后, 垃圾回收器会安排它们所属的代( generation )。每个对象都会被安排一个代,而被安排更年轻代的对象是优先被处理的。可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 2 页,共 6 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -vip 会员免费5、什么是 lambda 函数?它有什么好处 .答: lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数lambda 函数:首要用途是指点短小的回调函数lambda arguments:expression>>> a=lambdax,y:x+y>>> a3,116、请写出一段 Python 代码实现删除一个list里面的重复元素答:1, 使用 set函数, setlist 2,使用字典函数,>>>a=1,2,4,2,4,5,6,5,7,8,9,0>>> b=>>>b=b.fromkeysa>>>c=listb.keys>>> c7、用 Python 匹配 HTML tag 的时候, <.*> 和<.*.> 有什么区分? 答:术语叫贪婪匹配 <.*> 和非贪婪匹配 <.*.> 例如: test<.*> :test可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 3 页,共 6 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -vip 会员免费<.*.> :8、如何在一个 function里面设置一个全局的变量?答:解决方法是在function的开头插入一个global声明:def f global x9、编程用 sort进行排序,然后从最终一个元素开头判定a=1,2,4,2,4,5,7,10,5,5,7,8,9,0,3a.sort last=a-1for i inrangelena-2,-1,-1: if last=ai:del ai else:last=ai printa10、下面的代码在Python2 中的输出是什么?说明你的答案def div1x,y:print "%s/%s = %s" % x, y, x/ydef div2x,y:print "%s/%s = %s" % x, y, x/ydiv15,2可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 4 页,共 6 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -vip 会员免费div15.,2div25,2 div25.,2.另外,在 Python3 中上面的代码的输出有何不同 假设代码中的 print语句都转化成了 Python3 中的语法结构 ? 在 Python2 中,代码的输出是:5/2 = 25.0/2 = 2.55/2 = 25.0/2.0 = 2.0默认情形下,假如两个操作数都是整数, Python2 默认执行整数运算。 所以,5/2结果是 2,而 5./2结果是 2.5留意你可以通过下面的import语句来掩盖 Python2 中的这一行为from future import division仍要留意“双斜杠” /操作符将会始终执行整除,忽视操作数的类型。这就是为什么 5.0/2.0即使在 Python2 中结果也是 2.0但是在 Python3 并没有这一行为。 两个操作数都是整数时, 也不执行整数运算。在 Python3 中,输出如下:5/2 = 2.55.0/2 = 2.55/2 = 25.0/2.0 = 2.0可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 5 页,共 6 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结 Q 6, % 6可编辑资料 - - - 欢迎下载