Python面试题

Posted green-crosswalk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python面试题相关的知识,希望对你有一定的参考价值。

python是一种解释型语言,它的源代码可以直接运行。由python解释器把源代码解释为中间语言,然后翻译为机器码运行。

1.什么事pickling和unpiickling

我理解为对象的序列化和反序列化,利用pickle可以把python对象转化为二进制字符串(类型为bytes),方便文件存储对象,并可以利用load()重新得到此对象。

2.python如何管理内存的

python是一种动态类型的语言,引用与对象分离,GC采用引用计数的方式,交叉引用采用标记-清除方式识别,采用分代回收提高效率,为了降低GC引起的系统效能,自动回收需要

满足一定条件,内存管理详解点击这里

3.哪些工具可以帮助对python源码做静态分析

pychecker能够报告源码中的错误以及复杂度,pylint可以检测源码是否符合编程标准

4.什么是python装饰器

装饰器主要提供面向切面编程技术,实现以嵌套函数定义和函数闭包为依据,可通过@语法糖包装相关函数。装饰器介绍点击这里

5.数组和元组的区别

数组是可变的,元组是只读的,元组可作为dict的key

6.参数的值传递和引用传递如何实现的

python中的一切都是类,所有的变量都是对象的引用,赋值相当于修改引用,但是可以修改可变的对象。

7.列表推倒式,字典推倒式,集合推倒式

推倒式又叫解析式,它可以从一个数据列表快速构建另一个新的数据列表

列表推倒式基本形式 [value for value in list if exp]

生成器对象 (value for value in list if exp)

字典推倒式基本形式 {key:value for key,value in dict.items() if exp}

集合推倒式 {key for key in list if},集合不允许相同元素的存在

8.python有哪些自带的数据结构

可变的:list,dict,set,不可变的:string,tuple,number

9.python生成器是什么

生成器是实现迭代器的一种机制,它的功能实现依赖于yield表达式,除此之外和普通函数一样;

它的工作机制:带有yield的函数返回一个iterable对象通过__next__每次执行到yield返回值,下次next从yield下一句继续执行,直到遇见return或函数执行结束,抛出不用处理的StopIteration;

给人感觉像是协程的执行流程。

以上是关于Python面试题的主要内容,如果未能解决你的问题,请参考以下文章

最强面试题整理第一弹:Python 基础面试题(附答案)

最强面试题整理第一弹:Python 基础面试题(附答案)

最强面试题整理第一弹:Python 基础面试题(附答案)

最强面试题整理第二弹:Python 进阶面试题(附答案)

最强面试题整理第二弹:Python 进阶面试题(附答案)

最强面试题整理第二弹:Python 进阶面试题(附答案)