40个Python面试题和答案合集

2021年3月23日15:05:30 发表评论 1,171 次浏览

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中的名称空间是什么?

名称空间是用于确保名称唯一以避免命名冲突的命名系统。

要了解更多信息, 请参阅以下文章: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课程。


木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: