千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:郑州千锋IT培训  >  面试技巧  >  千锋郑州老师分享 Python面试必知的十个问题

千锋郑州老师分享 Python面试必知的十个问题

来源:千锋教育
发布人:Yolanda
时间: 2018-10-29 16:36:12

  近年来Python越来越火,选择学习Python的人也越来越多。为了能够快速成为令企业满意的高技能人才,在选择参加培训班学习技能的同时,人们也越发注重面试技巧及经验的积累,今天千锋郑州老师就给大家分享一下Python面试中必须知道的十道题及其答案。

  1、什么是Python?有什么好处?

  Python是一种编程语言,它有对象、模块、线程、异常处理和自动内存管理。Python是一种解释型语言,Python代码在运行之前不需要编译;Python是动态类型语言,在声明变量时不需要说明变量的类型;Python非常适合面向对象的编程(OOP),支持通过组合(composition)与继承(inheritance)的方式定义类(class);Python代码编写快,用途非常广泛,让困难的事情变得容易。

  2、Python是怎样管理内存的?

  Python的内存管理是由私有heap空间管理的。所有的Python对象和数据结构都在一个私有heap中。程序员没有访问该heap的权限,只有解释器才能对它进行操作。为Python的heap空间分配内存是由Python的内存管理模块进行的,其核心API会提供一些访问该模块的方法供程序员使用。Python有自带的垃圾回收系统,它回收并释放没有被使用的内存,让它们能够被其他程序使用。

  3、有哪些工具可以帮助debug或做静态分析?

  PyChecker是一个静态分析工具,它不仅能报告源代码中的错误,并且会报告错误类型和复杂度。Pylint是检验模块是否达到代码标准的另一个工具。

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

  可以说的很多,你应该提到三点:1)Python在内存中存储了每个对象的引用计数(reference count)。如果计数值变成0,那么相应的对象就会小时,分配给该对象的内存就会释放出来用作他用;2)出现引用循环(reference cycle)。垃圾回收器会定时寻找这个循环,并将其回收;3)Python中使用了某些启发式算法(heuristics)来加速垃圾回收。例如,越晚创建的对象更有可能被回收。对象被创建之后,垃圾回收器会分配它们所属的代(generation)。每个对象都会被分配一个代,而被分配更年轻代的对象是优先被处理的。

  5、参数按值传递和引用传递是怎样实现的?

  Python中的一切都是类,所有的变量都是一个对象的引用。引用的值是由函数确定的,因此无法被改变。但是如果一个对象是可以被修改的,你可以改动对象。

  6、如何用Python来进行查询和替换一个文本字符串?

  可以使用sub()方法来进行查询和替换,sub方法的格式为:sub(replacement, string[, count=0]) replacement是被替换成的文本;string是需要被替换的文本;count是一个可选参数,指最大被替换的数量。

1

  7、线程如何在Python中实现?

  Python有一个多线程包threading,可以使用多线程来加快你的代码。但是Python有一个叫做Global Interpreter Lock(GIL)的构造。GIL确保只有一个'线程'可以在任何时候执行。

  线程获取GIL,做一些工作,然后将GIL传递到下一个线程。这种情况发生得非常快,所以对于人眼而言,它可能看起来像你的线程并行执行,但它们实际上只是轮流使用相同的CPU内核。因此GIL的存在使得Python中的多线程无法真正的利用多核的优势来提高性能。

  对于IO密集型操作,在等待操作系统返回的时候会释放GIL;再比如爬虫因为有等待的服务器的响应时间,可以利用多线程来加速!但是对于CPU密集型操作,只能通过多进程Multiprocess来加速。

  8、数据仓库是什么?

  数据仓库是一个面向主题的、集成的、稳定的、反映历史变化的、随着时间的流逝发生变化的数据集合。它主要支持管理人员的决策分析。

  数据仓库收集了企业相关内部和外部各个业务系统数据源、归档文件等一系列历史数据,最后转化成企业需要的战略决策信息。

  9、Python中的模块和包是什么?

  在Python中,模块是搭建程序的一种方式。每一个Python代码文件都是一个模块,并可以引用其他的模块,比如对象和属性。一个包含许多Python代码的文件夹是一个包。一个包可以包含模块和子文件夹。

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

  match()函数只检测RE是不是在string的开始位置匹配,search()会扫描整个string查找匹配, 也就是说match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回none 。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

最新文章NEW

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>