《2022年最新Python面试题及答案 .pdf》由会员分享,可在线阅读,更多相关《2022年最新Python面试题及答案 .pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 老男孩 IT 教育,只培养技术精英2018 年最新 Python面试题及答案找工作是每个学习Python 人员的目标,为了更好的找到工作,刷面试题是必不可少的, 了解最新企业招聘试题, 可以让你面试更加的顺利。 小编整理了一些 2017 年最新的 Python 面试题,来测测你技术的掌握度吧。1、Python 里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别)答:赋值( =),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。浅拷贝:创建一个新的对象, 但它包含的是对原始对象中包含项的引用(如果用引用的方式修改其中一个对象, 另外一个也会修改改变) 1, 完全切片方法;2
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, superst
3、ition).span()(0, 5) print(re.match(super, insuperable )None 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 老男孩 IT 教育,只培养技术精英print(re.search(super, superstition).span()(0, 5) print(re.search(super, insuperable ).span()(2, 7) 3、有没有一个工具可以帮助查找
4、python 的 bug 和进行静态的代码分析?答: PyChecker 是一个 python 代码的静态分析工具, 它可以帮助查找 python代码的 bug, 会对代码的复杂度和格式提出警告Pylint是另外一个工具可以进行codingstandard检查4、简要描述 Python 的垃圾回收机制( garbage collection)。答案这里能说的很多。你应该提到下面几个主要的点:Python 在内存中存储了每个对象的引用计数(reference count )。如果计数值变成 0,那么相应的对象就会小时,分配给该对象的内存就会释放出来用作他用。偶尔也会出现引用循环( referen
5、ce cycle)。垃圾回收器会定时寻找这个循环,并将其回收。举个例子,假设有两个对象o1 和 o2,而且符合 o1.x = o2和 o2.x = o1这两个条件。如果o1 和 o2 没有其他代码引用,那么它们就不应该继续存在。但它们的引用计数都是1。Python 中使用了某些启发式算法(heuristics)来加速垃圾回收。例如,越晚创建的对象更有可能被回收。对象被创建之后, 垃圾回收器会分配它们所属的代(generation )。每个对象都会被分配一个代,而被分配更年轻代的对象是优先被处理的。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -
6、- - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - 老男孩 IT 教育,只培养技术精英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
7、,2,4,2,4,5,6,5,7,8,9,0 b= b=b.fromkeys(a) c=list(b.keys() c 7、用 Python 匹配 HTML tag的时候, 和 有什么区别?答:术语叫贪婪匹配 ( )和非贪婪匹配 ( ) 例如: test : test 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - 老男孩 IT 教育,只培养技术精英 : 8、如何在一个 function里面设置一个全局的变量?答:解决方法是在f
8、unction的开始插入一个 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=ai: del ai else:last=ai print(a) 10、下面的代码在 Python2 中的输出是什么?解释你的答案def div1(x,y): print %s/%s = %s % (x, y, x/y) def div2(x,y): print %s/%s =
9、%s % (x, y, x/y) div1(5,2) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - 老男孩 IT 教育,只培养技术精英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
10、/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.5 5.0/2 = 2.5 5/2 = 2 5.0/2.0 = 2.0 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - 老男孩 IT 教育,只培养技术精英名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -