Python面试题合集简介:Python 是一种通用的高级编程语言。它是开发人员和程序员最流行的语言,因为它可以用于机器学习、Web 开发、图像处理等。目前很多科技公司,如谷歌、亚马逊、Facebook 等都在使用 Python 并聘请了大量的人们每年。常见的Python面试题和答案有哪些?这里我们准备了40 大 Python 面试问题及其答案的列表。
1.什么是Python?列举一些 Python 在技术领域的流行应用?
Python常见问题有哪些?Python 是一种广泛使用的通用高级编程语言。它由 Guido van Rossum 于 1991 年创建,并由 Python 软件基金会进一步开发。它的设计强调代码的可读性,其语法允许程序员用更少的代码行表达他们的概念。
它用于:
- 系统脚本
- Web开发
- 游戏开发
- 软件开发
- 复杂数学
2. 在当前场景下使用 Python 语言作为工具有什么好处?
以下是使用 Python 语言的好处:
- 面向对象语言
- 高级语言
- 动态类型语言
- 广泛的支持库
- 第三方模块的存在
- 开源和社区发展
- 便携和交互
- 跨操作系统可移植
3.python 的 sort() 和 sorted() 函数使用了哪种排序技术?
Python面试问题和答案合集:Python 使用Tim Sort算法进行排序。这是一个稳定的排序,其最坏情况是 O(N log N)。它是一种混合排序算法,派生自归并排序和插入排序,旨在在多种现实世界数据上表现良好。
4. List 和 Tuple 的区别?
常见的Python面试题和答案有哪些?下面来分析一下List和Tuple的区别:
列表
- 列表是可变数据类型。
- 列表消耗更多内存
- 该列表更适合执行操作,例如插入和删除。
- 迭代的含义是耗时的
元组
- 元组是不可变数据类型。
- 与列表相比,元组消耗更少的内存
- 元组数据类型适用于访问元素
- 迭代的含义相对更快
要阅读更多信息,请参阅文章:List vs Tuple
5. Python 中如何进行内存管理?
Python面试题合集:Python 使用其私有堆空间来管理内存。基本上,所有的对象和数据结构都存储在私有堆空间中。即使是程序员也无法访问这个私有空间,因为解释器会处理这个空间。Python 还有一个内置的垃圾收集器,它回收所有未使用的内存并释放内存并使其可用于堆空间。
要了解更多信息,请参阅文章:Python 中的内存管理
6. 什么是 PEP 8?
PEP 8 是 Python 风格指南。该文档提供了有关如何编写漂亮的 Python 代码的指南和最佳实践。它提倡一种非常易读且赏心悦目的编码风格。
要阅读更多内容,请参阅文章:PEP 8 编码风格
7. Python 是编译型语言还是解释型语言?
实际上,Python 是一种部分编译语言和部分解释语言。编译部分在我们执行代码时首先完成,这将生成字节码,并在内部由 python 虚拟机(pvm)根据底层平台(机器+操作系统)转换此字节码。
要阅读更多信息,请参阅文章:Python – 已编译还是已解释?
8.如何使用Python删除文件?
我们可以通过以下方法使用 Python 删除文件:
- os.remove()
- os.unlink()
9. 什么是装饰器?
Python面试问题和答案合集:装饰器是 Python 中一个非常强大和有用的工具,因为它们是我们在 Python 语法中进行的特定更改,以便轻松更改函数。
要了解更多信息,请参阅文章:Python 中的装饰器
10. Mutable 数据类型和 Immutable 数据类型有什么区别?
可变数据类型可以编辑,即它们可以在运行时更改。例如 – 列表、字典等。
不可变数据类型不能编辑,即它们不能在运行时更改。例如——字符串、元组等。
11. Set 和 Dictionary 有什么区别?
Set 是可迭代、可变且没有重复元素的数据类型的无序集合。
Python 中的字典是数据值的无序集合,用于像地图一样存储数据值。
要阅读更多信息,请参阅文章:集合和字典
12. 如何调试 Python 程序?
通过使用这个命令,我们可以调试一个python程序:
$ python -m pdb python-script.py
13. 什么是酸洗和脱酸?
Pickle 模块接受任何 Python 对象并将其转换为字符串表示并使用 dump 函数将其转储到文件中,这个过程称为酸洗。而从存储的字符串表示中检索原始 Python 对象的过程称为 unpickling。
要阅读更多内容,请参阅文章:Python 中的 Pickle 模块
14. Python 中参数是如何按值或按引用传递的?
Python 中的一切都是一个对象,所有变量都持有对这些对象的引用。参考值根据功能而定;因此,你无法更改引用的值。但是,如果对象是可变的,你可以更改它。
15. 什么是列表理解?举个例子。
列表理解是一种语法结构,用于简化基于现有可迭代对象的列表创建。
例如:
my_list = [i for i in range(1, 10)]
16.什么是词典理解?举个例子
Python常见问题有哪些?Dictionary Comprehension 是一种语法结构,用于简化基于现有迭代创建字典的过程。
例如:my_dict = {i:1+7 for i in range(1, 10)}
17.是元组理解吗?如果是,如何,如果不是,为什么?
(i for i in (1, 2, 3))
元组理解在 Python 中是不可能的,因为它最终会出现在生成器中,而不是元组理解中。
18. Python 中的命名空间是什么?
命名空间是一种命名系统,用于确保名称是唯一的,以避免命名冲突。
要了解更多信息,请参阅文章:Python 中的命名空间
19. 什么是 lambda 函数?
lambda 函数是匿名函数。这个函数可以有任意数量的参数,但只能有一个语句。例如:
a = lambda x, y : x*y
print(a(7, 19))
要了解更多信息,请参阅文章:Lambda 函数
20. Python 中的 pass 是什么?
Python面试题合集:Pass 意味着不执行任何操作,或者换句话说,它是复合语句中的一个占位符,该位置应该留有一个空格,无需在那里写入任何内容。
21. xrange 和 range 函数有什么区别?
常见的Python面试题和答案有哪些?range() 和 xrange() 是两个函数,可用于在 Python 的 for 循环中迭代特定次数。在 Python 3 中,没有 xrange,但 range 函数的行为类似于 Python 2 中的 xrange。
- range() – 返回使用 range() 函数创建的数字列表。
- xrange() – 此函数返回生成器对象,该对象只能通过循环显示数字。唯一的特定范围是按需显示的,因此称为惰性求值。
要了解更多信息,请参阅文章:Range vs Xrange
22. Python 中的 / 和 // 有什么区别?
//表示层除法,/表示精确除法。例如:
5//2 = 2
5/2 = 2.5
23.什么是zip功能?
Python zip() 函数返回一个 zip 对象,该对象映射多个容器的相似索引。它接受一个可迭代对象,转换为迭代器并根据传递的可迭代对象聚合元素。它返回一个元组迭代器。
24.Python面试问题和答案合集:什么是Python中的swapcase函数?
它是一个字符串的函数,可以将所有大写字符转换为小写字符,反之亦然。它用于改变字符串的现有大小写。此方法创建字符串的副本,其中包含交换案例中的所有字符。例如:
string = "LsBin"
string.swapcase() ---> "lSbIN"
25. Python 中的迭代器是什么?
在 Python 中,迭代器用于迭代一组元素,容器之类的列表。迭代器是项目的集合,它可以是列表、元组或字典。Python 迭代器实现了 __itr__ 和 next() 方法来迭代存储的元素。在 Python 中,我们通常使用循环来遍历集合(列表、元组)。
要阅读更多信息,请参阅文章:Python 中的迭代器
26. Python 中的生成器是什么?
在 Python 中,生成器是一种指定如何实现迭代器的方式。它是一个普通函数,只是它在函数中产生表达式。它没有实现 __itr__ 和 next() 方法,也减少了其他开销。
如果一个函数至少包含一个 yield 语句,它就成为一个生成器。yield 关键字通过保存其状态来暂停当前执行,然后在需要时从相同状态恢复。
要阅读更多信息,请参阅文章:Python 中的生成器
27. Python 3.8 版本新增了哪些功能?
以下是 Python 3.8 版本的新特性:
- 仅位置参数(/)
- 赋值表达式(:=)
- f 字符串现在支持“=”
- reversed() 适用于字典
28.Python 中的猴子补丁是什么?
在 Python 中,术语猴子补丁仅指运行时对类或模块的动态修改。
# g.py
class GeeksClass:
def function(self):
print "function()"
import m
def monkey_function(self):
print "monkey_function()"
m.GeeksClass.function = monkey_function
obj = m.GeeksClass()
obj.function()
要了解更多信息,请参阅文章:Monkey patching in Python
29. Python 是否支持多重继承?
与 Java 不同,Python 确实支持多重继承。多重继承意味着一个类可以从多个父类派生。
30. Python 中的多态是什么?
多态性意味着采取多种形式的能力。因此,例如,如果父类有一个名为 ABC 的方法,那么子类也可以有一个具有自己的参数和变量的同名 ABC 方法。Python 允许多态。
31.在Python中定义封装?
封装意味着将代码和数据绑定在一起。Python 类是封装的一个示例。
32、Python中如何进行数据抽象?
数据抽象仅提供所需的细节,并向外界隐藏实现。它可以通过使用接口和抽象类在 Python 中实现。
33、Python支持哪些数据库?
MySQL(结构化)和 MongoDB(非结构化)是 Python 原生支持的主要数据库。导入模块并开始使用函数与数据库交互。
34. Python 中如何进行异常处理?
有 3 个主要关键字,即 try、except 和 finally,它们用于捕获异常并相应地处理恢复机制。Try 是用于监视错误的代码块。当发生错误时,块会被执行。
最后一个块的美妙之处在于在尝试错误后执行代码。无论是否发生错误,都会执行此块。finally 块用于执行对象/变量所需的清理活动。
35. '#' 符号在 Python 中有什么作用?
'#' 用于注释掉该行后面的所有内容。
36. Python面试题合集:写一段代码显示当前时间?
currenttime= time.localtime(time.time())
print (“Current time is”, currenttime)
37.浅拷贝和深拷贝有什么区别?
Python常见问题有哪些?创建新实例类型时使用浅复制,它保留复制的值,而深复制存储已复制的值。
浅拷贝的程序执行速度更快,而深拷贝则使它变慢。
38. 常见的Python面试题和答案有哪些?什么是PIP?
PIP 是 Python Installer Package 的首字母缩写,它提供了一个无缝接口来安装各种 Python 模块。它是一个命令行工具,可以在互联网上搜索软件包并在没有任何用户交互的情况下安装它们。
39. Python 中的 __init__() 是什么?
Python面试问题和答案合集:等同于 OOP 术语中的构造函数,__init__ 是 Python 类中的保留方法。每当启动新对象时,都会自动调用 __init__ 方法。该方法在新对象一创建就为其分配内存。此方法还可用于初始化变量。
40. 标识符的最大可能长度是多少?
Python 中的标识符可以是任意长度。