40个Python面试题和答案合集

Python是一种通用的高级编程语言。它是开发人员和程序员中最流行的语言, 因为它可以在机器学习, Web开发, 图像处理等中使用。目前, 许多技术公司(例如Google, Amazon, Facebook等)都在使用Python, 并雇用了许多人。人们每年。我们准备了一份清单前40个Python面试问题连同他们的答案。

40个Python面试题和答案合集

文章图片
1.什么是Python?列出技术界中一些流行的Python应用程序?
Python是一种广泛使用的通用高级编程语言。它由Guido van Rossum于1991年创建, 并由Python Software Foundation进一步开发。它的设计着重于代码的可读性, 其语法允许程序员用更少的代码行表达其概念。
它用于:
  • 系统脚本
  • Web开发
  • 游戏开发
  • 软件开发
  • 复数数学
2.在当前情况下, 使用Python语言作为工具有什么好处?
以下是使用Python语言的好处:
  • 面向对象语言
  • 高级语言
  • 动态类型语言
  • 广泛的支持库
  • 第三方模块的存在
  • 开源与社区发展
  • 便携式和互动
  • 可跨操作系统移植
3. python的sort()和sorted()函数使用哪种排序技术?
Python使用蒂姆·索特(Tim Sort)排序算法。这是一种稳定的排序, 最坏的情况是O(N log N)。这是一种混合排序算法, 源自合并排序和插入排序, 旨在在多种现实数据中表现良好。
4.区分列表和元组?
让我们分析一下List和Tuple之间的区别:
list
  • 列表是可变数据类型。
  • 列表消耗更多内存
  • 该列表更适合执行操作, 例如插入和删除。
  • 迭代的含义很耗时
tuple
  • 元组是不可变的数据类型。
  • 与列表相比, 元组消耗更少的内存
  • 元组数据类型适合访问元素
  • 迭代的隐含性相对更快
要了解更多信息, 请参阅以下文章:列表与元组
5.如何在Python中完成内存管理?
Python使用其专用堆空间来管理内存。基本上, 所有对象和数据结构都存储在私有堆空间中。甚至程序员也无法访问此私有空间, 因为解释器会照顾这个空间。 Python还具有一个内置的垃圾收集器, 该垃圾收集器回收所有未使用的内存, 并释放内存并使之可用于堆空间。
要了解更多信息, 请参阅以下文章:Python中的内存管理
6.什么是PEP 8?
PEP 8是Python样式指南。该文档提供了有关如何编写漂亮的Python代码的指南和最佳实践。它促进了一种非常可读和令人赏心悦目的编码风格。
要了解更多信息, 请参阅以下文章:PEP 8编码样式
7. Python是编译语言还是解释语言?
实际上, Python是部分编译的语言和部分解释的语言。当我们执行代码时, 首先完成编译部分, 这将生成字节代码, 并且在内部由python虚拟机(p.v.m)根据基础平台(计算机+操作系统)转换该字节代码。
要了解更多信息, 请参阅以下文章:Python –编译还是解释?
8.如何使用Python删除文件?
我们可以通过以下方法使用Python删除文件:
  • os.remove()
  • os.unlink()
9.什么是装饰器?
装饰器是Python中非常强大且有用的工具, 因为它们是我们在Python语法中所做的特定更改, 可以轻松更改功能。
要了解更多信息, 请参阅以下文章:Python中的装饰器
10. Mutable数据类型和Immutable数据类型有什么区别?
可变数据类型可以进行编辑, 即可以在运行时进行更改。例如–清单, 字典等。
不可变的数据类型无法编辑, 即, 它们在运行时无法更改。例如–字符串, 元组等
11. Set和Dictionary有什么区别?
Set是可迭代, 可变且没有重复元素的无序数据类型集合。
Python中的Dictionary是数据值的无序集合, 用于存储数据值(如地图)。
要了解更多信息, 请参阅以下文章:套装和字典
12.如何调试Python程序?
通过使用此命令, 我们可以调试python程序:
$ python -m pdb python-script.py

13.什么是酸洗和酸洗?
Pickle模块接受任何Python对象并将其转换为字符串表示形式, 并使用dump函数将其转储到文件中, 此过程称为pickling。从存储的字符串表示中检索原始Python对象的过程称为解开。
要了解更多信息, 请参阅以下文章:Python中的Pickle模块
14.在Python中如何通过值或引用传递参数?
Python中的所有内容都是一个对象, 所有变量都包含对该对象的引用。参考值根据功能而定;结果, 你无法更改引用的值。但是, 如果对象是可变的, 则可以更改它们。
15.什么是列表理解?举个例子。
列表理解是一种语法构造, 可简化基于现有可迭代对象的列表的创建。
例如:
my_list = [i for i in range(1, 10)]

16.什么是字典理解?举个例子
Dictionary Comprehension是一种语法构造, 可简化基于现有可迭代对象的字典的创建。
例如:my_dict = {i:1 + 7表示我在range(1, 10)中}
17.元组理解吗?如果是, 如何, 如果不是, 为什么?
(i for i in (1, 2, 3))

在Python中无法进行元组理解, 因为它将最终生成器生成, 而不是元组理解。
18. Python中的名称空间是什么?
【40个Python面试题和答案合集】名称空间是用于确保名称唯一以避免命名冲突的命名系统。
要了解更多信息, 请参阅以下文章:Python中的命名空间
19.什么是lambda函数?
Lambda函数是匿名函数。此函数可以具有任意数量的参数, 但是只能有一个语句。例如:
a = lambda x, y : x*y print(a(7, 19))

要了解更多信息, 请参阅以下文章:Lambda函数
20. Python中的通过是什么?
通过表示不执行任何操作, 换句话说, 它是复合语句中的占位符, 该位置应留有空白, 且无需在其中写任何内容。
21. xrange和range函数有什么区别?
range()和xrange()是两个函数, 可用于在Python中的for循环中迭代一定次数。在Python 3中, 没有xrange, 但是range函数的行为类似于Python 2中的xrange。
  • 范围()–这将返回使用range()函数创建的数字列表。
  • xrange()–该函数返回只能通过循环显示数字的生成器对象。唯一的特定范围按需显示, 因此称为懒惰的评价.
要了解更多信息, 请参阅以下文章:范围与Xrange
22. Python中/和//有什么区别?
//表示地板分割, 而/表示精确分割。例如:
5//2 = 2 5/2 = 2.5

23.什么是zip功能?
Python zip()函数返回一个zip对象, 该对象映射多个容器的相似索引。它需要一个可迭代的对象, 转换为迭代器, 并根据传递的可迭代对象聚合元素。它返回一个元组的迭代器。
24.什么是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()适用于字典
要了解更多信息, 请参阅以下文章:Python 3.8的强大功能
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()

要了解更多信息, 请参阅以下文章:Python中的猴子修补
29. Python是否支持多重继承?
与Java不同, Python确实支持多重继承。多继承意味着一个类可以从多个父类派生。
30.什么是Python中的多态?
多态是指采取多种形式的能力。因此, 例如, 如果父类具有一个名为ABC的方法, 则子类也可以具有一个具有相同名称和参数的ABC方法。 Python允许多态。
要了解更多信息, 请参阅以下文章:Python中的多态性
31.在Python中定义封装?
封装意味着将代码和数据绑定在一起。 Python类是封装的一个示例。
要了解更多信息, 请参阅以下文章:用Python封装
32.如何在Python中进行数据抽象?
数据抽象仅提供所需的详细信息, 并从世界中隐藏实现。可以使用接口和抽象类在Python中实现。
要了解更多信息, 请参阅以下文章:Python中的抽象
33. Python支持哪些数据库?
MySQL(结构化)和MongoDB(非结构化)是Python本身支持的著名数据库。导入模块并开始使用功能与数据库进行交互。
34.如何在Python中完成异常处理?
共有3个主要关键字, 即try, except和finally, 它们用于捕获异常并相应地处理恢复机制。尝试是监视错误代码段。发生错误时, 将执行块除外。
最后一个块的好处是尝试错误后执行代码。无论是否发生错误, 都将执行此块。最后, 块用于执行对象/变量的必需清除活动。
35. Python中的"#"符号有什么作用?
"#"用于注释掉该行之后的所有内容。
36.编写代码以显示当前时间?
currenttime= time.localtime(time.time()) print ("Current time is", currenttime)

37.浅表副本和深表副本有什么区别?
创建新实例类型时, 将使用浅表复制, 并保留已复制的值, 而深表复制则存储已复制的值。
浅表副本的程序执行速度较快, 而深层副本的速度较慢。
要了解更多信息, 请参阅以下文章:浅拷贝与深拷贝
38.什么是画中画?
PIP是Python Installer Package的首字母缩写, 它提供了一个无缝接口来安装各种Python模块。这是一个命令行工具, 可以在Internet上搜索软件包并安装它们, 而无需任何用户交互。
要了解更多信息, 请参阅以下文章:Python中的PIP
39. Python中的__init __()是什么?
等效于OOP术语中的构造函数, __init__是Python类中的保留方法。每当启动新对象时, __init__方法都会自动调用。该方法在创建新对象后立即将其分配给新对象。此方法还可用于初始化变量。
40.标识符的最大可能长度是多少?
Python中的标识符可以是任意长度。
首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。

    推荐阅读