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 机器学习等。通过浏览器内的实时编码环境与材料互动,解决您的知识空白,以帮助积极保留和应用您需要学习的内容。