ITPub博客

首页 > 应用开发 > Python > Python程序员面试牢记这些,助你闯关成功!

Python程序员面试牢记这些,助你闯关成功!

原创 Python 作者:千锋武汉 时间:2021-10-18 10:16:14 0 删除 编辑

       Python程序员的面试不同于其他的岗位,在面试过程中经常会遇到笔试、面试、复试等环节,面试就如同闯关。“闯关”过程中,面试官对于 Python开发人员的基础非常看重,那么如何在面试中向面试官展示自己的基本功呢?小千 整理了几点面试必考问题。

35

       1、简述Python的特点和优点

       Python是一门开源的解释性语言,相比Java、C++等语言,Python具有动态特性,非常灵活。

       2、Python有哪些数据类型

       Python有6种内置的数据类型,其中不可变数据类型是Number(数字),String(字符串),Tuple(元组),可变数据类型是List(列表),Dict(字典),Set(集合)。

       3、列表和元组的区别

       列表和元组都是可迭代对象,能够对其进行循环、切片等,但元组tuple是不可变的。元组不可变的特性,使得它可以成为字典Dict中的键。

       4、Python是如何运行的

       Python程序运行时,会先进行编译,将.py文件中的代码编译成字节码(bytecode),编译结果储存在内存的PyCodeObject中,然后由Python虚拟机解释运行。当程序运行结束后,Python解释器会将PyCodeObject保存到pyc文件中。每一次运行时Python都会先寻找与文件同名的pyc文件,如果pyc存在则比对修改记录,根据修改记录决定直接运行或再次编译后运行,最后生成pyc文件。

       5、Python运行速度慢的原因

       a).Python不是强类型的语言,所以解释器运行时遇到变量以及数据类型转换、比较操作、引用变量时都需要检查其数据类型。

       b).Python的编译器启动速度比JAVA快,但几乎每次都要启动编译。

       c).Python的对象模型会导致访问内存效率变低。Numpy的指针指向缓存区数据的值,而Python的指针指向缓存对象,再通过缓存对象指向数据:

图片1

       6、面对Python慢的问题,有什么解决办法

       a).可以使用其他的解释器,比如PyPy和Jython等。

       b).如果对性能要求较高且静态类型变量较多的应用程序,可以使用CPython。

       c).对于IO操作多的应用程序,Python提供asyncio模块提高异步能力。

       7、描述一下全局解释器锁GIL

       每个线程在执行时候都需要先获取GIL,保证同一时刻只有一个线程可以执行代码,即同一时刻只有一个线程使用CPU,也就是说多线程并不是真正意义上的同时执行。但是在IO操作时,是可以释放锁的(这也是Python能够异步的原因)。而且如果想要利用多核CPU,那么可以使用多进程。

       8、深拷贝,浅拷贝

       深拷贝是将对象本身复制给另一个对象,浅拷贝则是将对象的引用复制给另一个对象。所以当复制后的对象改变时,深拷贝的原对象值不会改变,而浅拷贝原对象的值会被改变。

       这些最基本的问题熟记心中后,在面试中你就可以放心的向面试官展示你的基本功了。

       本文来自千锋教育,转载请注明出处。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31548651/viewspace-2837819/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-12-13

  • 博文量
    841
  • 访问量
    417493