从Python 2切换到3的5个简单技巧2025年1月5日 | 阅读 5 分钟 引言在本教程中,我们将学习关于从 Python 2 迁移到 3 的 5 个简单技巧。许多重要的 Python 项目已经承诺完全过渡到 Python 3。在数据科学中,我们可以使用 NumPy、Pandas、SciPy 等。在机器学习中使用 TensorFlow、Scikit-Learn、XGBoost 等。对于 Web 应用程序,我们使用了 requests、Tornado。随着主要库全面过渡到 Python 3,更新您的代码库变得至关重要。在本教程中,我们将探讨五个简单的技巧来帮助您从 Python 2 版本过渡到 Python 3 版本。 1. 导入Python 2 使用相对导入,而 Python 3 现在使用绝对导入,使其更加透明。考虑以下文件夹结构 在 Python 2 中,相对导入基于当前文件的位置编写。例如,要在我们的主题中导入一些辅助代码,我们会这样做: Python 3 不再支持此导入样式,因为它不清楚您想要 `helper_code` 的“相对”还是“绝对”版本。如果名为 `helper_code` 的 Python 包已安装在您的计算机上,您可能会意外导入错误的包。现在,Python 3 要求显式导入,您需要清楚地指定模块相对于当前工作目录的位置。因此,导入您的辅助代码将如下所示: 注意包名称旁边的点(.),表示该包在当前目录中。同样,在包名称前使用两个点(..)(如 ..helper_code)会告诉 Python 该包位于 main_code.py 当前位置的上一级目录。关键点是 Python 3 要求您提供包的确切位置。 2. Print 语句我们中的许多人在某个时候都遇到过与 Python print 语句相关的错误。这是一个肯定需要使用 Python 2 print 语句的任何人切换到 Python 3 格式的更改。我们将在下面提供一个示例: 本质上,您需要在代码中的所有 print 语句中添加括号。幸运的是,一旦包含括号,print 语句将同时兼容 Python 2 和 Python 3。 3. 整数除法在 Python 2 中,使用 / 运算符来分割整数会导致商向下舍入到最近的整数。您必须在执行除法之前将整数转换为浮点数才能获得浮点数结果。Python 3 通过引入两个不同的运算符来简化此操作:/ 用于浮点除法,// 用于整数除法。Python 3 通过引入两个不同的运算符来简化此操作:/ 用于浮点除法,// 用于整数除法。 Python 3 中使用显式运算符可以提高代码的清晰度和可读性。// 运算符明确用于整数除法,而 / 运算符用于浮点除法,无需显式类型转换。注意这一点很重要,因为如果您在从 Python 2 迁移到 3 时不将整数除法从 / 更新为 //。您可能会得到浮点数结果而不是整数。 4. 字符串格式化Python 3 中的字符串格式化语法得到了极大的改进。在 Python 2 中,您会像这样使用 % 符号 关于这些 Python 2 语句有几个关键点
Python 3 引入了一个字符串格式化方法,位于字符串类中,使用 str.format()。此格式化器允许您使用位置格式化组合字符串中的元素。 新的 format() 函数简化了此过程。此函数允许您在单个清晰的语句中格式化字符串,而无需指定类型。只需确保变量的顺序正确,一切都会无缝运行。 5. 返回可迭代对象而不是列表在 Python 3 中,许多内置函数返回迭代器而不是列表。此更改主要旨在提高内存效率,因为迭代器通常比列表占用更少的内存。使用迭代器时,元素仅在需要时生成并存储在内存中。这允许创建大型数据集,例如数十亿个点,而不会消耗过多的内存。相比之下,创建包含 10 亿个浮点数的列表需要足够的 RAM 来同时存储所有数据。一般来说,使用迭代器的行为类似于列表。一个例子是遍历 range() 函数的输出。我们举一个例子: 请注意,即使在 Python 3 中 range() 返回一个迭代器,语法仍然相同。如果您特别需要一个列表,您可以使用 list() 函数轻松地将迭代器转换为列表。 Python 3 中一些常用的返回迭代器而不是列表的函数和方法包括 zip()、map()、filter(),以及一些字典方法,如 .keys()、.values() 和 .items()。 结论在本教程中,我们将探讨五个简单的技巧来帮助您从 Python 2 版本过渡到 Python 3 版本。通过遵循上面列出的五个简单技巧,即更新导入语句、修改 print 语句、调整整数除法运算、使用新的字符串格式化方法以及理解迭代器而不是列表的使用,这个转变对于确保与数据科学、机器学习和 Web 开发中使用的现代工具和库的兼容性至关重要。这些更改将有助于提高代码的可读性、效率以及与 Python 最新进展的兼容性。 |
什么是深度学习?深度学习是人工智能(AI)的一个分支,用于基于人脑的教学和处理数据。深度学习模型识别图片、文本、声音和其他数据格式中的复杂模式,以提供高效的结果和准确性。深度学习...
阅读 10 分钟
简介:在本教程中,我们将学习关于。通过使用 sympy.limit() 方法,我们可以轻松计算任何数学表达式的极限。下面是一个例子——语法: 的语法如下——limit(expression, variable, value) 参数: 的参数如下——
阅读 2 分钟
Python 对象检查中的 '_eq_'、'is' 和 '==' 之间的区别是 Python 编程中的一个基本组成部分,它使开发人员能够评估对象的相等性和身份。在 Python 中,对象是核心——变量、数据结构、函数等都是对象……
7 分钟阅读
?引言 根据您的需求和任务的复杂性,您可以使用 Python 以几种不同的方式从字符串中删除字符。一种简单的方法是逐个遍历字符串,删除您想要的字符...
阅读9分钟
非对称加密算法是 RSA 算法。实际上,非对称是指它同时处理公钥和私钥。正如名称所示,私钥是保密的,而公钥则分发给所有人。非对称加密...
阅读 13 分钟
Python 中滚动回归简介 使用 `statsmodels` 库在 Python 中进行滚动回归涉及在数据点的移动窗口上应用线性回归。此方法有助于您理解变量之间的关系如何随时间变化。固定大小的窗口在数据集上“滚动”...
7 分钟阅读
Python 文档处理可以成为自动化诸如编写、编辑和读取 Word 文档等操作的有用工具。许多应用程序,如内容管理、报告生成和数据提取,都依赖于此功能。许多 Python 库可以促进和加速此过程。在这里,我们将...
阅读 3 分钟
在Python中,count()方法是一个元组方法,用于计算元素在元组中出现的次数。它返回传递给它的元素的出现次数。此方法接受一个参数,该参数表示用户想要计数的元素……
阅读 4 分钟
? Python 以其可读性和简洁性而闻名,但有时,您可能需要编写多行语句来使代码更加有条理且易于理解。在本文中,我们将探讨在 Python 中编写多行语句的各种方法,包括使用反斜杠、括号...
阅读 4 分钟
?ROC 曲线在人工智能领域是不可或缺的工具,提供了一种图形化方法来评估二元分类模型的表现。在这个辅助工具中,我们将踏上一段使用两个广泛使用的库(Scikit-learn...)绘制 ROC 曲线的复杂过程之旅。
阅读9分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India