面向初学者的 20 大 Python 面试问题和答案

简介: 面向初学者的 20 大 Python 面试问题和答案

1. 什么是 PEP 8,为什么有用?

PEP 是 Python Enhancement Proposal 的首字母缩写。它是一份官方设计文档,包含一组指定如何格式化 Python 代码的规则,并有助于实现最大的可读性。PEP 8 很有用,因为它记录了 Python 代码的所有样式指南。这是因为为 Python 开源社区做贡献需要您

严格遵守这些风格指南。

2. Python元组和列表有什么区别?

Python 列表和元组的区别如下:

网络异常,图片无法展示
|

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

Python 中的范围是 Python 代码所在的代码块。虽然名称空间唯一标识程序内的对象,但它们还包括一个范围,使我们能够在没有前缀的情况下使用它们的对象。在程序执行期间创建的范围的几个示例是:

全局作用域: 它指的是程序中最顶层的作用域。这些是自从它们在 Python 代码的主体中开始以来在整个代码执行过程中可用的全局变量。

局部作用域: 指当前函数内部可用的局部变量,只能在局部使用。

注意:本地作用域对象和变量可以通过诸如 . 之类的关键字与全局作用域对象同步global

4. 数组和列表有什么区别?

网络异常,图片无法展示
|

5. 在 Python 中是什么*args意思**kwargs

我们过去常常*args在 Python 函数中传递可变长度的非关键字参数。(*)默认情况下,我们应该在参数名称前使用星号来传递可变数量的参数。星号表示可变长度,args 是约定俗成的名称。您可以使用任何其他名称。

代码示例:

def addition(e, f, *args):
  add = e + f
  for num in args:
      add += num
  return add
print(addition(1, 2, 3, 4, 5))
复制代码
-->
15
复制代码

我们过去常常**kwargs在 Python 函数中传递可变数量的关键字参数。默认情况下,我们应该在参数名称前使用双星号 ( ) 来表示一个 kwargs 参数。

代码示例:

def forArguments(**kwargs):
  for key, value in kwargs.items():
      print(key + ": " + value)
forArguments(arg0 = "arg 00", arg1 = "arg 11", arg2 = "arg 22")
复制代码
-->
arg0: arg 00
arg1: arg 11
arg2: arg 22
复制代码

6. 什么是 lambda 函数?

lambda 函数基本上是一个内联匿名函数(即,没有名称定义),用一个可以接受多个参数的表达式表示。它用于在运行时创建函数对象。

然而,与普通函数不同的是,它们只计算并返回一个表达式。

此外,代替用于创建函数的传统def关键字,lambda 函数使用lambda关键字。我们通常使用 lambda 函数,其中仅在短期内需要函数。它们可以用作:

add_func = lambda x,b : x+b
print(add_func(3,5))
复制代码
8
复制代码

7. Python 是一种编程语言还是脚本语言?

Python 通常被认为是一种通用的编程语言,但我们也可以用它来编写脚本。脚本语言也是一种编程语言,用于在执行程序时自动执行涉及相似类型步骤的重复任务。Python 脚本语言的文件扩展名有不同的类型,例如.py, .pyc, .pyd, .pyo, .pyw, and .pyz.

8. 我们如何在 Python 中管理内存?

我们通过使用私有顶部空间的Python 内存管理器处理 Python 中的内存管理。这是因为所有 Python 对象和数据结构都位于私有堆中。由于我们作为程序员无权访问这个私有堆,因此 Python 解释器会处理这个问题。

此外,核心 API 还允许我们访问一些工具来进行编码。

Python 还包括一个内置的垃圾收集器,用于为私有堆空间回收未使用的内存。

网络异常,图片无法展示
|

9. Python 中的关键字是什么?

Python 中的关键字是具有特殊含义的保留字。它们通常用于定义不同类型的变量。我们不能使用关键字代替变量或函数名称。

Python 中有35 个保留关键字:

网络异常,图片无法展示
|

网络异常,图片无法展示
|

0.什么是初始化

在 Python 中,init是一种方法或构造函数,用于在创建新对象或类的实例时自动分配内存。所有类都__init__包含该方法。

代码示例:

# A Sample class with init method
class Alibi:
    # init method or constructor
    def __init__(self, name):
        self.name = name
    # Sample Method
    def hello_hi(self):
        print('Hello, my name is', self.name)
# Creating different objects
p1 = Alibi('NIKE')
p2 = Alibi('PUMA')
p3 = Alibi('ADIDAS')
p1.hello_hi()
p2.hello_hi()
p3.hello_hi()
复制代码
Hello, my name is NIKE
Hello, my name is PUMA
Hello, my name is ADIDAS
复制代码

11. Python 中的类型转换是什么?

Python 中的类型转换是将一种数据类型更改为另一种数据类型的过程。例如:

  • dict(): 用于将顺序为 (key, value) 的元组转换为字典。
  • str():用于将整数转换为字符串。

12. 什么是 Python 中的迭代器?

Python 中的迭代器是一个对象,用于迭代数据结构(如列表、元组、字典和集合)中的有限数量的元素。迭代器允许我们遍历集合的所有元素并一次返回一个元素。

迭代器对象通过该方法初始化iter(),并使用该next()方法进行迭代。

代码示例:

print("List Iteration")
l = ["educative", "for", "learning"]
for i in l:
    print(i)
复制代码
List Iteration
educative
for
learning
复制代码

13. 你对 NumPy 了解多少?

NumPy 是 Numerical Python 的缩写。它是用于处理数组的最流行、开源、通用和强大的 Python 包之一。NumPy 自带几个高度优化的函数,具有高性能和强大的 n 维数组处理能力。

NumPy 可用于三角运算、代数和统计计算、科学计算等。

14. 什么是 Python 装饰器?

Python 中的装饰器是一种函数,允许用户在不修改其结构的情况下向现有对象添加新功能。 您通常在定义要装饰的函数之前调用装饰器。

15.range工作原理是什么?

在 Python 中,range()返回一个不可变的数字序列。它通常用于创建for循环。它有几个变体。为了更好地理解,让我们来看几个例子:

# Prints a list of numbers from 0 to 9
# Note: by default the list starts from 0 and default step is of size 1
print(list(range(10)))
# Prints a list of numbers from 5 to 8
# step is not provided hence it is 1 by default
print(list(range(5, 9)))
# Prints a list of numbers from 2 to 20
# with a step of size 2
print(list(range(2, 21, 2)))
# Using range to create a for loop
for i in range(10):
  print("Looping =", i)
复制代码
-->
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[5, 6, 7, 8]
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
Looping = 0
Looping = 1
Looping = 2
Looping = 3
Looping = 4
Looping = 5
Looping = 6
Looping = 7
Looping = 8
Looping = 9
复制代码

16.什么是Python模块?

Python 模块是包含要在程序中使用的 Python 定义和语句的文件。模块可以定义函数、类和变量。通过保存扩展名为 的文件创建 Python 模块。.py.此文件包含可在代码中以及跨模块重用的类和函数。它们还可以包含可运行代码。

Python 模块的优点包括:

代码组织: 代码更容易理解和使用。

代码可重用性: 其他模块可以重用模块中使用的功能,从而消除了重复的需要。

17、什么是pickling和unpickling?

Pickling是 Python 中的一个过程,其中对象层次结构被转换为字节流。相反, Unpickling与酸洗相反。当字节流转换回对象层次结构时会发生这种情况。腌制也称为“序列化”或“编组”。

Pickling 使用 Python 中的 pickle 模块。pickle.dump()该模块具有将 Python 对象转储到磁盘以实现 pickling 的方法。Unpickling 使用该方法pickle.load()将数据检索为 Python 对象。

网络异常,图片无法展示
|

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

文档字符串或文档字符串是用于记录特定代码段(如 Python 模块、函数和类)的多行字符串。

它们帮助我们理解函数、类、模块或方法的作用,而无需阅读实现的细节。与传统的代码注释不同,文档字符串描述的是函数的作用,而不是它的工作原理。

我们将 docstring 写在三个双引号中,(""")如下例所示。

将两个整数相加:

def add(a, b):
    """
    Add up two integer numbers.
    This function simply wraps the ``+`` operator, and does not
    do anything else.
    Examples
    --------
    >>> add(2, 2)
    4
    """
    return a + b
复制代码

我们可以使用以下方法访问文档字符串:

  • __doc__对象的方法
  • 内置帮助功能

19. 什么是 PYTHONPATH?

它是导入模块时使用的唯一环境变量。PYTHONPATH 充当 Python 解释器的指南,以确定在给定时间加载哪个模块。它用于检查各种目录中是否存在导入的模块。

启动 Python 解释器会在当前工作目录中打开 PYTHONPATH。

20.什么是Python包?

Python 包是模块的集合。相互关联的模块通常分组在同一个包中。当您在程序中需要来自外部包的模块时,可以导入它,然后根据需要使用它的特定模块。包有助于避免模块名称之间的冲突。您需要将包名称添加为模块名称的前缀,并用点连接以导入任何模块或其内容。

Python 面试准备的后续实用步骤

因为面试通常是找工作中压力最大的部分,所以进行深入的准备和充分的练习将帮助您获得信心并成功应对。

通过练习上述问题,您可以熟悉常见的 Python 概念。下一个实际步骤应该包括练习这些问题以及编码示例。通过充分的练习,您将在面试中脱颖而出,离梦想的工作更近一步!

在 Educative,我们的目标是通过为您提供动手实践的互动学习平台,使面试过程更加顺畅。您可以通过我们的综合课程和 Python 教程了解有关 Python 的更多信息,包括数据结构、内置函数、Web 开发、运行时、编译器、Python 库、数据科学、Python 机器学习等。通过浏览器内的实时编码环境与材料互动,解决您的知识空白,以帮助积极保留和应用您需要学习的内容。


相关文章
|
2月前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
2月前
|
Java C++ Python
【面试宝典】深入Python高级:直戳痛点的题目演示(下)
【面试宝典】深入Python高级:直戳痛点的题目演示(下)
|
2月前
|
设计模式 Unix Python
【面试宝典】深入Python高级:直戳痛点的题目演示(上)
【面试宝典】深入Python高级:直戳痛点的题目演示(上)
|
5月前
|
数据采集 机器学习/深度学习 数据可视化
了解数据科学面试中的Python数据分析重点,包括Pandas(DataFrame)、NumPy(ndarray)和Matplotlib(图表绘制)。
【7月更文挑战第5天】了解数据科学面试中的Python数据分析重点,包括Pandas(DataFrame)、NumPy(ndarray)和Matplotlib(图表绘制)。数据预处理涉及缺失值(dropna(), fillna())和异常值处理。使用describe()进行统计分析,通过Matplotlib和Seaborn绘图。回归和分类分析用到Scikit-learn,如LinearRegression和RandomForestClassifier。
106 3
|
5月前
|
Python
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题
|
5月前
|
存储 算法 索引
1124. 表现良好的最长时间段 (python) 前缀和 分类讨论 最大长度 力扣 面试题
1124. 表现良好的最长时间段 (python) 前缀和 分类讨论 最大长度 力扣 面试题
|
5月前
|
算法 Java Linux
python中的面试常考知识点
python中的面试常考知识点
|
7月前
|
存储 数据可视化 算法
最新Python-Matplotlib可视化(9)——精通更多实用图形的绘制,2024年最新小米面试题库
最新Python-Matplotlib可视化(9)——精通更多实用图形的绘制,2024年最新小米面试题库
最新Python-Matplotlib可视化(9)——精通更多实用图形的绘制,2024年最新小米面试题库
|
7月前
|
数据采集 Java 数据挖掘
最新Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测!,2024年最新网易云java面试
最新Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测!,2024年最新网易云java面试
最新Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测!,2024年最新网易云java面试
|
7月前
|
数据采集 算法 网络协议
最新Python 面试常见问题(1),2024年最新面试官必问的10个问题
最新Python 面试常见问题(1),2024年最新面试官必问的10个问题
最新Python 面试常见问题(1),2024年最新面试官必问的10个问题