随着python在企业中的应用越来越多,岗位需求越来越大,面试成为了搞定优质职位的快速方式,接下来给大家总结9道比较容易在面试中出现的题目。
0.什么是Python?使用Python有什么好处?(这个问题是最常见的开头问题,是最基础也是最重要的!)
答案:下面是一些关键点:
- Python是一种解释型语言。这就是说,与C语言和C的衍生语言不同,Python代码在运行之前不需要编译。其他解释型语言还包括PHP和Ruby。
- Python是动态类型语言,指的是你在声明变量时,不需要说明变量的类型。你可以直接编写类似x=111和x="I'm a string"这样的代码,程序不会报错。
- Python用途非常广泛——网络应用,自动化,科学建模,大数据应用,等等。它也常被用作“胶水语言”,帮助其他语言和组件改善运行状况。
- Python让困难的事情变得容易,因此程序员可以专注于算法和数据结构的设计,而不用处理底层的细节。
1.python中is和==的区别(总结了大部分人的面试,这道题出现的概率也很大。)
答案:
- Python中对象包含的三个基本要素,分别是:id(身份标识) 、type(数据类型)和value(值)。
- ‘==’比较的是value值
- ‘is’比较的是id
2. Python是怎样管理内存的?
答案:
Python的内存管理是由私有heap空间管理的。所有的Python对象和数据结构都在一个私有heap中。程序员没有访问该heap的权限,只有解释器才能对它进行操作。
另外,Python有自带的垃圾回收系统,它回收并释放没有被使用的内存让它们能够被其他程序使用。
3.有哪些工具可以帮助debug或做静态分析?
答案:
PyChecker,一个静态分析工具,除了报告源代码中的错误,还能分析出错误的类型和复杂程度。另外,还有Pylint,用于检验模块是否达到代码标准的工具。
4.你如何管理不同版本的代码?
答案:
一点不属于专业的小技巧——被问到这个问题的时候,你应该要表现得很兴奋,甚至告诉他们你是如何使用Git(或是其他你最喜欢的工具)追踪自己和女票的书信往来。除了Git作为版本控制系统(VCS),你也可以选择subversion(SVN)。
5.什么是Python的命名空间?
答案:
python使用命名空间记录变量。python中的命名空间就像是一个dict,key是变量的名字,value是变量的值。
如果你记不住上面这段标准答案,也可以这么回答:
在Python 中,所有的名字都存在于一个空间中,它们在该空间中存在和被操作——这就是命名空间。每一个变量名字都尤其对应的一个对象,而命名空间可是把他们收纳起来的盒子,当查询变量的时候,会从该盒子里面寻找相应的对象。
6.Python中的pass是什么?
答案:
Pass是一个不可或缺但又毫无作用的语句。 pass就是什么也不做,只是为了防止语法错误,比如: if a>1: pass #我这里先不做任何处理,直接跳过,但是如果不写pass,就会语法错误。
7.在Python中如何拷贝一个对象?
答案:
一般来说可以使用copy.copy()方法或者copy.deepcopy()方法,几乎所有的对象都可以被拷贝,一些对象可以更容易的拷贝,Dictionaries有一个copy方法:newdict = olddict.copy()
但并不是所有的对象都可以被拷贝。
8.Xrange和range的区别是什么?
Xrange用于返回一个xrange对象,而range用于返回一个数组。不管那个范围多大,Xrange都使用同样的内存。
其实在面试中,面试官往往不会出太难的问题,只要掌握好基础,大部分都能过关。
最后再给大家提供一点面试时候的小技巧!
自我介绍的时候,可以按照这个结构来:个人基本信息 基本技术构成 项目经验(具体项目以及在项目中的负责部分) 自我评价,其中的原则就是紧紧围绕招聘岗位的需求做介绍。
在此之前要做好准备工作,看看招聘方具体需要什么方向的研发工程师。