20道python面试题_第1页
20道python面试题_第2页
20道python面试题_第3页
20道python面试题_第4页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、20道python面试题对于机器学习算法工程师而言,Python是不可或缺的语言,它的优美与简洁令人无法自拔。那么你了解过Python编程面试题吗?今天我们就来了解一下!1、python下多线程的限制以及多进程中传递参数的方式python多线程有个全局解释器锁(globalinterpreterlock),这个锁的意思是任一时间只能有一个线程使用解释器,跟单cpu跑多个程序一个意思,大家都是轮着用的,这叫“并发”,不是“并行”。多进程间共享数据,可以使用multiprocessing.Value和multiprocessing.Array。2、什么是lambda函数?它有什么好处?lambda

2、函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的函数。lambda函数不能包含命令,它们所包含的表达式不能超过一个。不要试图向lambda函数中塞入太多的东西;如果你需要更复杂的东西,应该定义一个普通函数,然后想让它多长就多长。3、Python是如何进行类型转换的?函数描述int(x,base)将x转换为一个整数10ng(x,base)将x转换为一个长整数float(x)将x转换到一个浮点数complex(real,imag)创建一个复数str(x)将对象x转换为字符串repr(x)将对象x转换为表达式字符串eval(str)用来计算在字符串中的有效Python表达式,并返

3、回一个对象tuple(s)将序列s转换为一个元组list(s)将序列s转换为一个列表?chr(x)将一个整数转换为一个字符?unichr(x)将一个整数转换为Unicode字符?ord(x)将一个字符转换为它的整数值?hex(x)将一个整数转换为一个十六进制字符串?oct(x)将一个整数转换为一个八进制字符串4、python多线程与多进程的区别在UNIX平台上,当某个进程终结之后,该进程需要被其父进程调用wait,否则进程成为僵尸进程(Zombie)。所以,有必要对每个Process对象调用join()方法(实际上等同于wait)。对于多线程来说,由于只有一个进程,所以不存在此必要性。多进程应

4、该避免共享资源。在多线程中,我们可以比较容易地共享资源,比如使用全局变量或者传递参数。在多进程情况下,由于每个进程有自己独立的内存空间,以上方法并不合适。此时我们可以通过共享内存和Manager的方法来共享资源。但这样做提高了程序的复杂度,并因为同步的需要而降低了程序的效率。5、Python里面如何拷贝一个对象?标准库中的copy模块提供了两个方法来实现拷贝。 一个方法是copy,它返回和参数包含内容一样白对象。使用deepcopy方法,对象中的属性也被复制。6、介绍一下except的用法和作用?Python的except用来捕获所有异常,因为Python里面的每次错误都会抛出一个异常,所以每

5、个程序的错误都被当作一个运行时错误。7、Python中pass语句的作用是什么?pass语句什么也不做,一般作为占位符或者创建占位程序,pass语句不会执行任何操作。8、Python解释器种类以及特点?Python是一门解释器语言,代码想运行,必须通过解释器执行,Python存在多种解释器,分别基于不同语言开发,每个解释器有不同的特点,但都能正常运行Python代码,以下是常用的五种Python解释器:CPython:当从Python官方网站下载并安装好Python2.7后,就直接获得了一个官方版本的解释器:Cpython,这个解释器是用C语言开发的,所以叫CPython,在命名行下运行pyt

6、hon,就是启动CPython解释器,CPython是使用最广的Python解释器。IPython:IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的,好比很多国产浏览器虽然外观不同,但内核其实是调用了IE。PyPy:PyPy是另一个Python解释器,它的目标是执行速度,PyPy采用JIT技术,对Python代进行动态编译,所以可以显著提高Python代码的执行速度。Jython:Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字

7、节码执行。IronPython:IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。在Python的解释器中,使用广泛的是CPython,对于Python的编译,除了可以采用以上解释器进行编译外,技术高超的开发者还可以按照自己的需求自行编写Python解释器来执行Python代码,十分的方便!9、列举布尔值为False的常见值?0,(),False,None10、字符串、列表、元组、字典每个常用的5个方法?字符串:repleace,strip,split,reverse,upper,

8、lower,join.歹U表:append,pop,remove,sort,count,index.元组:index,count,_len_(),_dir_()字典:get,keys,values,pop,popitems,clear,items.11、lambda表达式格式以及应用场景?表达式格式:lambda后面跟一个或多个参数,紧跟一个冒号,以后是一个表达式。冒号前是参数,冒号后是返回值。例如:lambdax:2x应用场景:经常与一些内置函数相结合使用,比如说16、Python垃圾回收机制?python采用的是引用计数机制为主,标记-清除和分代收集(隔代回收、分代回收)两种机制为辅的策略

9、计数机制:Python的GC模块主要运用了引用计数来跟踪和回收垃圾。在引用计数的基础上,还可以通过“标记-清除”解决容器对象可能产生的循环引用的问题。 通过分代回收以空间换取时间进一步提高垃圾回收的效率。标记-清除:标记-清除的出现打破了循环引用,也就是它只关注那些可能会产生循环引用的对象。缺点:该机制所带来的额外操作和需要回收的内存块成正比。隔代回收:原理:将系统中的所有内存块根据其存活时间划分为不同的集合,每一个集合就成为一个“代”,垃圾收集的频率随着“代”的存活时间的增大而减小。也就是说,活得越长的对象,就越不可能是垃圾,就应该减少对它的垃圾收集频率。那么如何来衡量这个存活时间:通常是利

10、用几次垃圾收集动作来衡量,如果一个对象经过的垃圾收集次数越多,可以得出:该对象存活时间就越长。17、python的可变类型和不可变类型?不可变类型(数字、字符串、元组、不可变集合);可变类型(列表、字典、可变集合)。18、Python里面search()和match()的区别?match()函数只检测RE是不是在string的开始位置匹配,search()会扫描整个string查找匹配,也就是说match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回none19、用Python匹配HTMLtag的时候,.*和.*?有什么区别?前者是贪婪匹配,会从头到尾匹配axyz/a,而后者是非贪婪匹配,只匹配到第random.random();它会返回一个随机的0和1之间的浮点数。map(),filter(),sorted(),reduce()等12、pass的作用?空语句donothing;保证格式完整;保证语义完整。13、arg和*kwarg作用?万能参数,解决了函数参数不固定的问题*arg:会把位置参数转化为tuple*kwarg:会把

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论