Python面试指南 – 53 个 经典Python面试题及答案

每个开发人员都需要知道的 53 个 Python 面试题

Python 是一种通用的、通用的编程语言。它也是当今使用最流行的编程语言之一。大大小小的公司在包括谷歌在内的各个行业都使用它。

Python 知识将打开许多大门和职业机会。回答 Python 面试问题可能会让人望而生畏。你可能知道如何编写 Python 代码。你甚至可能知道如何创建完整的 Python 应用程序,但有时问题可能很棘手。

为了帮助你准备下一次 Python 工作面试,或只是更新你对Python 编程语言的知识,以下是一份你在下一次面试中可能会遇到的问题列表。

文章目录 显示

1. Python是什么类型的语言?

Python 是一种通用的、面向对象的语言。它也是一种解释性语言。

2. Python语言有哪些特点?

  • Python 是一种解释型语言,这意味着Python 代码在运行前不需要编译。
  • Python 是一种动态类型语言。这意味着你不需要在创建变量时声明它的类型。Python 将动态确定其类型。
  • Python 是面向对象的。使用 Python,你可以定义类并使用组合和继承。Python 不支持访问说明符,例如 public 和 private。
  • Python 中的函数也是对象。这意味着你可以将它们分配给变量。
  • Python 函数也可以返回其他函数或接受它们作为参数。
  • Python 是一种通用语言,在许多行业中非常流行。开发人员将其用于自动化、Web 应用程序、机器学习、大数据等。
  • 用 Python 编写代码既简单又快捷,但 Python 代码的运行速度通常比编译语言慢。

3.什么是PEP8?

PEP8是最新的 Python 编码标准集。该文档提供了有关如何编写 Python 代码的指南和最佳实践。它的主要重点是提高 Python 代码的可读性和一致性。

4. Python 中的列表和元组有什么区别?

列表和元组都可以存储有序的对象数组,但是,元组是不可变的。这意味着一旦创建了一个包含对象的元组,这些对象就不能被改变。列表仍然允许在列表中重新分配对象。

5. Python是如何管理内存的?

Python 在 Python 私有堆空间中管理内存。Python 的内存管理器和垃圾收集器控制着私有堆空间。有多个级别的范围可以与命名空间一起使用,包括内置、全局、封闭和本地。

6.什么是 Python 命名空间?

Python 中的命名空间确保 Python 变量、函数和其他名称不会发生冲突。

7. PYTHONPATH 变量的用途是什么?

PYTHONPATH 是一个环境变量,它将告诉操作系统在哪里可以找到 Python 库。这将确保你的操作系统调用计算机上正确安装的 Python。

8. PYTHONSTARTUP 变量的用途是什么?

此变量包含包含 Python 源代码的初始化文件的路径。每次 Python 解释器启动时都会执行。

优质课程推荐

Python面试指南 - 53 个 经典Python面试题及答案

【Udemy课程 + 中英文字幕】

掌握编码面试:数据结构 + 算法

9. PYTHONCASEOK 变量的用途是什么?

这是一个专门用于在 Windows 操作系统上运行 Python 的变量。它告诉 Python 解释器在尝试查找导入的库时使用不区分大小写的匹配。

10. PYTHONHOME 变量的用途是什么?

这是搜索 Python 模块的替代路径。

11.什么是 Python 模块?

你可以将 Python 模块视为代码库。模块是 Python 类、函数和变量的集合。当模块提供不同的功能时,它们通常是相互分离的。

12. Python标准库中有哪些常用模块?

  • 在使用 Python编程时,你将经常使用Python 标准库中包含的一些模块:
  • Email:用于解析、处理和生成电子邮件消息。
  • String:字符串类型的索引,例如全部大写或小写字母。
  • Sqlite3:用于处理SQLite 数据库。
  • XML:提供 XML 支持。
  • Logging:创建日志记录类以记录系统详细信息。
  • Traceback:允许你提取和打印堆栈跟踪详细信息。

13. Python 中的作用域是什么?

Python 中的所有对象都有一个作用域。范围是可以访问变量的代码块。以下是 Python 中的一些作用域名称:

  • 本地范围:当前函数中可用的本地对象。
  • 全局范围:从一开始就可以通过代码执行获得的对象。
  • 模块级范围:程序中可访问的当前模块的全局对象。
  • 最外层范围:程序中可调用的内置名称。

14.如何在 Python 中获取用户的主目录 (~)?

你可以使用 os 模块执行此操作。

import os
print(os.path.expanduser('~'))

这将返回当前用户目录的路径。

15. Python 支持哪些内置类型?

  • Number
  • Booleans
  • String
  • Tuple
  • List
  • Dictionary
  • Set

16.什么是 Python 装饰器?

Python 装饰器是一个扩展另一个 Python 函数的行为而不显式修改它的函数。

17. Python中的 pickling/unpickling 是什么?

Pickling 是 Python 对象通过 pickle 模块转换为字符串表示形式。然后使用 dump() 函数将其放入文件中。Unpickling 指的是相反的过程,其中存储的字符串被检索并转回一个对象。

18. Python中的负索引是什么?

正索引从位置 0 开始,然后是 1、2 等,而负索引以 -1 结束。-2,-3等 是之前的位置,依此类推。负索引可以从列表的末尾而不是从开头访问 Python 列表中的元素。

19 、Python中如何定义全局变量和局部变量?

通常,在函数之外定义的变量是全局的。函数内部定义的变量也可以通过使用命令 global x 变成全局变量。

20.描述几种在 Python 中生成随机数的方法。

Python 附带了多种使用其 Random 库生成随机数的技术:https://docs.python.org/3/library/random.html• random():此命令返回一个介于 0 和 1 之间的浮点数。• uniform(x, y):此命令返回给定 x 和 y 值之间的浮点数。• randint(x, y):此命令返回给定的 x 和 y 值之间的随机整数。

21.什么是 Python 字典?

Python 字典是 Python 中的标准数据结构之一。它是元素的无序集合,充当哈希表。这些元素存储在键值对中。字典由键索引。

注意:从Python3.6开始,Python内置字典默认是有序集合了

# Python 字典
dict={'first':'Bob', 'last':'Smith'}

优质课程推荐

Python面试指南 - 53 个 经典Python面试题及答案

【Udemy课程 + 中英文字幕】

数据结构和算法 – Python

Data Structures & Algorithms – Python

22. Python 区分大小写吗?

是的,Python 是一种区分大小写的语言。

23.以下代码的输出是什么?

print(var) if var = 'Hello Everyone!'

输出将是:

'Hello Everyone!'

24.以下代码的输出是什么?

print(var[0]) if var = 'Hello Everyone!'

输出将是:

'H'

25.以下代码的输出是什么?

print(var[2:5])  if var = 'Hello Everyone!'

输出将是:

'llo'

26.如何获取 Python 字典中的所有键?

你将使用字典键功能。

dict={'first':'Bob', 'last':'Smith'}
all_keys=dict.keys()

27.如何获取 Python 字典中的所有值?

你将使用字典值函数。

dict={'first':'Bob', 'last':'Smith'}
all_values=dict.values()

28.如何在python中将字符串转换为整数?

Python int 函数会将字符串转换为整数。第二个参数是数字的基数,默认是10,十进制数。

x = '100'
int(x, 10)

29.如何在python中将字符串转换为long?

Python long 函数会将字符串转换为 long。第二个参数是数字的基数,默认是10,十进制数。

x = '100'
long(x, 10)

30.如何在python中将字符串转换为浮点数?

Python float 函数会将字符串转换为浮点数。

x = '100.12345'
float(x)

31.如何在python中将对象转换为字符串?

Python str 函数会将对象转换为字符串。

dict={'first':'Bob', 'last':'Smith'}
str(dict)

32. Python中的**运算符有什么作用?

** 运算符在 Python 中执行指数计算。

# x = 8
x = 2**3

33. // 运算符在 Python 中的作用是什么?

// 整除运算符,返回小数点前的整数。

# x = 2
x = 8 // 3

34. Python is 操作符是做什么的?

在 Python 表达式中使用 is 运算符时,如果两边的变量都指向同一个对象,则它的计算结果为 true。

# z is true
x = 3
y = x
z = x is y

面试课程

Python面试指南 - 53 个 经典Python面试题及答案

【Udemy课程 + 中英文字幕】

Master Coding Interview 😀ata structures + Algorithms

35. Python not in 运算符有什么作用?

如果 Python not in 运算符在指定序列中没有找到变量,则计算结果为 true,否则返回 false。

# 下面的表达式会返回True
4 not in [1,2,3]

36. Python的break语句有什么作用?

Python break 是停止循环语句。遇到break语句,Python将调出循环结构,执行循环结构外的代码。

37. Python continue 语句有什么作用?

Python continue 是继续循环语句。使循环跳过其主体的其余部分并在循环的开头继续。

38. Python pass 语句有什么作用?

Python pass 语句用于需要语句但你不希望执行命令或代码时。

39.什么是 Python 字典和列表推导式?

Python 中的列表推导式就像装饰器。它们是所谓的语法糖,可帮助从现有列表、字典或集合创建过滤和修改的列表和字典。它们方便快捷,因为你可以在一行代码中编写它们。

the_list = [2, 3, 5, 7, 11]

# list 列表生成式
squared_list = [x**2 for x in the_list]
# 输出 [4 , 9 , 25 , 49 , 121]

# dict 列表生成式
squared_dict = {x:x**2 for x in the_list}
# 输出 {11: 121, 2: 4 , 3: 9 , 5: 25 , 7: 49}

40.什么是 Python lambda,为什么要使用它们?

Python lambda 是匿名函数。它们可以接受多个参数,但只有一个表达式。它们用于临时需要一个函数并且其他代码不需要的地方。与完整功能相比,它们的功能范围也受到限制。

multiply = lambda x, y : x * y
print(multiply(2, 5))        
# 输出 10

41.如何在 Python 中复制对象?

虽然 = 运算符将复制 Python 中的许多内容,但它不会复制 Python 对象。它只创建对对象的引用。要在 Python 中创建对象的副本,你需要使用 copy 模块。复制模块提供了两种复制对象的方法。• 浅拷贝:复制对象并重用旧对象的引用• 深拷贝:递归地复制对象中的所有值。

from copy import copy, deepcopy

list_1 = [1, 2, [3, 5], 4]

# 浅拷贝

list_2 = copy(list_1)
list_2[3] = 11
list_2[2].append(12)

list_2        # output => [1, 2, [3, 5, 12], 11]
list_1        # output => [1, 2, [3, 5, 12], 4]

# 深拷贝

list_3 = deepcopy(list_1)
list_3[3] = 10
list_3[2].append(13)

list_3        # output => [1, 2, [3, 5, 12, 13], 10]
list_1        # output => [1, 2, [3, 5, 12], 4]

42. Python中的self是什么?

在 Python 中,当在内部引用自身时,self 表示类的对象或实例。在其他语言中,此变量通常称为 this。在 Python 类中,你必须将 self 作为方法中的第一个参数显式传递。

class Car():
    def __init__(self, model, color):
        self.model = model
        self.color = color
    def display(self):
        print("Model is", self.model )
        print("color is", self.color )

43. Python中的__init__是什么?

在 Python 中,__init__ 方法用作类的构造函数。每当创建一个类的新实例时,首先调用 __init__。构造函数通常用于设置类属性。

class Car():
    # __init__ sets up the make, model, and color of the car object
    def __init__(self, make, model, color):
        self.make = make
        self.model = model
        self.color = color

44. Python 中的生成器是什么?

Python 中的生成器就像可以多次返回的函数。这称为yielding。它们用于返回可迭代的项目集合。它们是用 def 定义的,就像 Python 函数一样。

def squares():
    x = range(1, 4)
    for n in x:
        yield n**2
for y in squares():
    print(y)           
    # 输出 1 4 9

45. Python help() 函数有什么作用?

Python help() 函数将返回 Python 模块、类、函数等的文档。

46. Python 的 dir() 函数有什么作用?

Python dir() 函数将返回你调用它的对象的方法和属性列表。

47. .py.pyc 文件有什么区别?

以 py 扩展名结尾的 Python 文件是基于文本的源文件。这些是你在编写 Python 代码时创建的文件。带有 pyc 扩展名的 Python 文件是编译后的字节码文件。当 Python 应用程序运行时,解释器会查找现有的 pyc 文件。如果这些不存在,则它将 py 源文件编译为字节码并运行生成的 pyc 文件。

48. Python 中的文档字符串是什么?

Python 文档字符串是代码对象中的第一个注释。代码对象的文档字符串可通过该代码对象的 __doc__ 属性和帮助函数获得。

def the_function():
  """The is a function docstring"""

49. 编写 Python 代码以打印文件的完整内容,并对丢失的文件进行错误处理。

try:
    with open('filename', 'r') as file:
        print(file.read())
except IOError:
    print('no such file exists')

50. 编写 Python 代码来打印从 25 到 75 的所有数字的总和,包括 25 到 75。

print(sum(range(25,76)))

51. 编写 Python 代码来打印特定文件中每一行的长度,不计算末尾的空格。

with open('filename.txt', 'r') as file:
    print(len(file.readline().rstrip()))

52. 编写 Python 代码以删除以下字符串中的空格 – ‘abc def geh ijk’。

s= 'abc def geh ijk'.replace(' ', '')

53. 编写 Python 代码以从列表中删除重复项。

res = []
[res.append(x) for x in test_list if x not in res]

结论

为编码面试做准备是值得的。希望上面的 Python 面试问题和答案能帮助你重新掌握 Python 知识,并为你的下一次工作面试提供支持。

如果你想学习更多的关于Python或者其他编程语言面试方面的课程,请访问口袋资源网,我们为你准备了大量的这方的高质量课程。

如果本站的内容对你有帮助,可以点击这儿,不花一分钱捐赠本站

(0)
疯狂的小黑疯狂的小黑
上一篇 2022年7月11日 下午8:35
下一篇 2022年7月13日 下午9:00

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

微信