40 道 Python 经典面试题及参考答案
涵盖 Python 基础概念、内存管理、数据结构、函数特性、模块包机制及 Web 框架 Flask 与 Django 对比等核心知识点。包含序列化、装饰器、迭代器、生成器、切片操作、异常处理、命名空间、全局变量规则等技术细节,适合求职者复习准备。

涵盖 Python 基础概念、内存管理、数据结构、函数特性、模块包机制及 Web 框架 Flask 与 Django 对比等核心知识点。包含序列化、装饰器、迭代器、生成器、切片操作、异常处理、命名空间、全局变量规则等技术细节,适合求职者复习准备。

Python 是一种编程语言,包含对象、模块、线程、异常和自动内存管理。Python 的好处在于它简单易用、可移植、可扩展、内置数据结构,并且它是开源的。
PEP 8 是一个编码约定,关于如何编写 Python 代码更具可读性。
Pickle 模块接受任何 Python 对象并将其转换为字符串表示形式,并使用 dump 函数将其转储到文件中,此过程称为 Pickling。从存储的字符串表示中检索原始 Python 对象的过程称为 Unpickling。
Python 语言是一种解释语言。Python 程序直接从源代码运行。它将程序员编写的源代码转换为中间语言,再次转换为必须执行的机器语言。
Python 内存由 Python 私有堆空间管理。所有 Python 对象和数据结构都位于私有堆中。程序员无权访问此私有堆,解释器负责处理此私有堆。 Python 对象的 Python 堆空间分配由 Python 内存管理器完成。核心 API 提供了一些程序员编写代码的工具。 Python 还有一个内置的垃圾收集器,它可以回收所有未使用的内存并释放内存并使其可用于堆空间。
PyChecker 是一个静态分析工具,可以检测 Python 源代码中的错误,并警告错误的风格和复杂性。Pylint 是另一种验证模块是否符合编码标准的工具。
Python Decorators 是我们在 Python 语法中进行的一项特定更改,可以轻松地更改函数。
列表和元组之间的区别在于列表是可变的而元组不是。元组可以被散列,例如作为字典的关键。
Python 中的所有内容都是一个对象,所有变量都包含对象的引用。参考值是根据功能;因此,您无法更改引用的值。但是,如果对象是可变的,则可以更改它们。
它们是语法结构,可以根据现有的 iterable 轻松创建 Dictionary 或 List。
有可变和不可变类型的 Pythons,内置类型为 Mutable 内置类型:
在 Python 中,引入的每个名称都有一个存在的地方,可以被连接起来。这称为命名空间。它就像一个框,其中变量名称映射到放置的对象。每当搜索到变量时,将搜索此框以获取相应的对象。
它是一个单独的表达式匿名函数,通常用作内联函数。
python 中的 lambda 表单没有语句,因为它用于创建新的函数对象,然后在运行时返回它们。
pass 意味着无操作的 Python 语句,或者换句话说,它是复合语句中的占位符,其中应该留有空白,并且不必在那里写入任何内容。
在 Python 中,迭代器用于迭代一组元素,如列表之类的容器。
Python 中的单元测试框架称为 unittest。它支持共享设置、自动化测试、测试关闭代码、将测试聚合到集合等。
从序列类型(如列表、元组、字符串等)中选择一系列项目的机制称为切片。
实现迭代器的方法称为生成器。这是一个正常的函数,除了它在函数中产生表达式。
Python 文档字符串称为 docstring,它是一种记录 Python 函数、模块和类的方法。
要在 Python 中复制对象,可以尝试 copy.copy() 或 copy.deepcopy() 来处理一般情况。您无法复制所有对象,但大多数对象都是如此。
Python 序列可以是正数和负数的索引。对于正索引,0 是第一个索引,1 是第二个索引,依此类推。对于负索引,(-1) 是最后一个索引,(-2) 是倒数第二个索引,依此类推。
要将数字转换为字符串,请使用内置函数 str()。如果需要八进制或十六进制表示,请使用内置函数 oct() 或 hex()。
xrange 返回 xrange 对象,而 range 返回列表,并使用相同的内存,无论范围大小是多少。
在 Python 中,模块是构造程序的方式。每个 Python 程序文件都是一个模块,它导入其他模块,如对象和属性。 Python 程序的文件夹是一个模块包。包可以包含模块或子文件夹。
局部变量:如果在函数体内的任何位置为变量赋值,则假定它是本地的。 全局变量:仅在函数内引用的那些变量是隐式全局变量。
要在单个程序中跨模块共享全局变量,请创建一个特殊模块。在应用程序的所有模块中导入配置模块。该模块将作为跨模块的全局变量提供。
要在 Unix 上使 Python 脚本可执行,您需要做两件事:
使用命令 os.remove(filename) 或 os.unlink(filename)。
要在 Python 中生成随机数,您需要将命令导入为:
import random
random.random()
这将返回 [0,1) 范围内的随机浮点数。
您可以通过以下方法访问 C 中用 Python 编写的模块:
Module = PyImport_ImportModule("");
它是一个 Floor Division operator(地板除运算符),用于分割两个操作数,结果为商,只显示小数点前的数字。例如,10 // 5 = 2 和 10.0 // 5.0 = 2.0。
在 Python 中使用 split 函数是使用定义的分隔符将字符串分解为更短的字符串。它给出了字符串中存在的所有单词的列表。
Flask 是基于'Werkzeug, Jinja 2 and good intentions'BSD 许可的 Python 的 Web 微框架。Werkzeug 和 Jinja 是它的两个依赖。 Flask 是微框架的一部分。这意味着它对外部库几乎没有依赖性。它使框架变得轻盈,同时几乎没有更新的依赖性和更少的安全性错误。
Flask 是一个'微框架',主要用于具有更简单要求的小型应用程序。在 Flask 中,您必须使用外部库。 Pyramid 是为更大的应用程序构建的。它提供了灵活性,并允许开发人员为他们的项目使用正确的工具。开发人员可以选择数据库、URL 结构、模板样式等。Pyramid 是可配置的。 像 Pyramid 一样,Django 也可以用于更大的应用程序。它包括一个 ORM。
Flask-WTF 提供与 WTForms 的简单集成。功能包括 Flask WTF:
Flask 脚本工作的常用方法是:
会话基本上允许您记住从一个请求到另一个请求的信息。在一个 Flask 中,它使用签名 cookie,以便用户可以查看会话内容并进行修改。如果只有密钥 Flask.secret_key,则用户可以修改会话。
基本上,Flask 是一个简约框架,其行为与 MVC 框架相同。所以 MVC 非常适合 Flask,MVC 的模式我们将考虑以下示例。典型的 MVC 模式包括模型(Model)、视图(View)和控制器(Controller)。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online