视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
python面试常见问题有哪些
2020-11-02 17:29:20 责编:小采
文档


python面试常见问题有:1、Python是如何被解释的;2、什么是PEP8;3、Python是怎样管理内存的;4、什么是Python装饰器;5、Python提供哪些内置类型等等。

大量免费学习推荐,敬请访问python教程(视频)

python面试常见问题有:

1、Python是什么?简述并说明优点和缺点?

Python是一种面向对象的解释性计算机编程语言,它是结合了解释性、编译性、互动性和面向对象的脚本语言。

优点:开源、免费、简单、易学、可移植、可扩展、易维护、开发效率高。

缺点:运行速度慢、代码不能加密。

2、Python是如何被解释的?

Python是一种解释性语言,它的源代码可以直接运行。Python解释器会将源代码转换成中间语言,之后再翻译成机器码再执行。

3、什么是PEP8?

PEP8是一个编程规范,是让程序更具可读性的一些建议。

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

1)引用计数机制:Python内部使用引用计数,来保持追踪内存中的对象。

2)垃圾回收机制:当一个对象的引用计数归零时,它将被垃圾收集机制处理掉;

循环垃圾回收器,确保释放循环引用对象。

3).内存池机制:

Python提供了对内存的垃圾收集机制,但是它将不用的内存放到内存池而不是返回给操作系统:

Pymalloc机制:为了加速Python的执行效率,Python引入了一个内存池机制,用于管理对小块内存的申请和释放。

对于Python对象,如整数,浮点数和List,都有其的私有内存池,对象间不共享他们的内存池。也就是说如果你分配又释了大量的整数,用于缓存这些整数的内存就不能再分配给浮点数。

Python装饰器是一个函数,是Python中的特有变动,可以使修改函数变得更容易。它可以使函数在不修改本身的函数定义外,动态产生额外的功能。

5、什么是Python装饰器?

Python装饰器是一个函数,是Python中的特有变动,可以使修改函数变得更容易。它可以使函数在不修改本身的函数定义外,动态产生额外的功能。

迭代器、生成器

可迭代对象:可以使用for-in遍历的对象,都是可迭代对象

在Python中如果一个对象有__iter__( )方法或__getitem__( )方法,则称这个对象是可迭代的(Iterable);其中__iter__( )方法的作用是让对象可以用for ... in循环遍历,__getitem__( )方法是让对象可以通过“实例名[index]”的方式访问实例中的元素。换句话说,两个条件只要满足一条,就可以说对象是可迭代的。显然列表List、元组Tuple、字典Dictionary、字符串String等数据类型都是可迭代的。

迭代器:迭代器是访问集合元素的一种方式。能够使用for-in进行遍历,并能使用next函数进行迭代的对象

在Python中如果一个对象有__iter__( )方法和__next__( )方法,则称这个对象是迭代器(Iterator);其中__iter__( )方法是让对象可以用for ... in循环遍历,__next__( )方法是让对象可以通过next(实例名)访问下一个元素。注意:这两个方法必须同时具备,才能称之为迭代器。列表List、元组Tuple、字典Dictionary、字符串String等数据类型虽然是可迭代的,但都不是迭代器,因为他们都没有next( )方法。

6、函数闭包

引用了自由变量的函数即是一个闭包. 这个被引用的自由变量和这个函数一同存在, 即使已经离开了创造它的环境也不例外.

7、数组和元组之间的区别是什么?

数组和元组之间的区别:数组内容是可以被修改的,而元组内容是只读的。另外,元组可以被哈希,比如作为字典的关键字。

8、类方法和静态方法

method:通过实例调用,可以引用类内部的任何属性和方法

classmethod:无需实例化,可以调用类属性和类方法,无法取到普通的成员属性和方法

staticmethod:无需实例化,无法取到类内部的任何属性和方法, 完全的一个方法

9、Python提供哪些内置类型?

整型(int)、字符串(str)、元组(tuple)、布尔(bool)、集合(set)、列表(list)、字典(dict)

10、字典推导式和列表推导式是什么?

它们是可以轻松创建字典和列表的语法结构。

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

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

11、Python中的lambda是什么?

这是一个匿名函数,常被用于代码中的单个表达式。

12、Python中的pass是什么?

pass是一个占位符,用来表示空白,不被执行。

13、Python中浅拷贝和深拷贝的区别?

copy.copy()浅拷贝:拷贝了对象,但拷贝对象的值仍然是指向原对象的值(相当于引用),修改拷贝对象的元素,则被拷贝对象的值也会被修改。

copy.deepcopy()深拷贝: 不仅拷贝了对象,同时也拷贝了对象中的元素,获得了全新的对象,与被拷贝对象完全;但这需要牺牲一定的时间和空间。

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

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

一个包含许多Python代码的文件夹是一个包。一个包可以包含模块和子文件夹。

下载本文
显示全文
专题