Python 2 与 Python 3:2.x 和 3.x 之间的主要区别

什么是 Python 2?

Python 2 使代码开发过程比早期版本更容易。它实现了 Python 增强提案 (PEP) 的技术细节。Python 2.7(2.x 系列的最后一个版本)不再进行开发,并将于 2020 年停止支持。

什么是 Python 3?

Python 3Python 编程语言 的较新版本,于 2008 年 12 月发布。此版本发布的主要目的是修复 Python 2 中存在的问题。这些更改的性质使得 Python 3 与 Python 2 不兼容。它是向后不兼容的。

Python 3 的一些特性已被反向移植到 Python 2.x 版本,以便于 Python 3 的迁移过程。因此,对于使用 Python 2.x 版本的任何组织来说,将其项目迁移到 3.x 都需要大量的更改。这些更改不仅涉及项目和应用程序,还涉及构成 Python 生态系统的所有库。

主要区别

  • Python 3 的语法更简单易懂,而 Python 2 的语法相对难以理解。
  • Python 3 默认存储字符串为 Unicode,而 Python 2 需要用“u”定义 Unicode 字符串值。
  • Python 3 变量的值永不改变,而在 Python 2 中,全局变量的值在使用 for 循环时会发生变化。
  • Python 3 中的异常应包含在括号内,而 Python 2 中的异常应包含在符号内。
  • Python 3 的比较顺序规则已简化,而 Python 2 的比较顺序规则很复杂。
  • Python 3 提供 Range() 函数来执行迭代,而在 Python 2 中,xrange() 用于迭代。

你为什么应该学习 Python 2?

Python 2 Vs. Python
Google Trends Python 2 vs. Python 3

尽管 Python 2 是一个旧的开源版本,但您仍需要在此处学习 Python 2

  • 要成为一名 DevOps 工程师,您需要使用像 puppet 或 ansible 这样的配置管理工具。在这里,您需要处理这两个版本。
  • 如果您的公司代码是用 Python 2 编写的,您将需要学习如何处理它
  • 如果您的开发团队正在处理一个依赖于特定第三方库或软件的项目,而您无法将其移植到 Python 3,那么 Python 2 是您唯一的选择。

你为什么应该使用 Python 3?

Learn Python 3

Stack Overflow 问题 Python 2 vs. Python 3

以下是使用 Python 3.x 版本的主要原因

  • Python 3 支持 AI、机器学习和数据科学等现代技术
  • Python 3 由庞大的 Python 开发者社区支持。获得支持很容易。
  • 与早期版本相比,学习 Python 语言更容易。
  • 提供强大的工具包和库
  • 可与其他语言混合使用

Python 2 的历史

  • Python 2.0 – 2000 年 10 月 16 日
  • Python 2.1 – 2001 年 4 月 17 日
  • Python 2.2 – 2001 年 12 月 21 日
  • Python 2.3 – 2003 年 7 月 29 日
  • Python 2.4 – 2004 年 11 月 30 日
  • Python 2.5 – 2006 年 9 月 19 日
  • Python 2.6 – 2008 年 10 月 1 日
  • Python 2.7-2010 年 7 月 3 日

Python 3 的历史

  • Python 3.0 – 2008 年 12 月 3 日
  • Python 3.1 – 2009 年 6 月 27 日
  • Python 3.2 – 2011 年 2 月 20 日
  • Python 3.3 – 2012 年 9 月 29 日
  • Python 3.4-2014 年 3 月 16 日
  • Python 3.5 – 2015 年 9 月 13 日
  • Python 3.6-2016 年 10 月
  • Python 3.7-2018 年 6 月。

Python 2 和 Python 3 之间的主要区别

Python 2 和 Python 3 之间的主要区别如下

Difference between Python 2.x and Python 3.x

Python 2.x 和 Python 3.x 之间的区别

比较依据 Python 3 Python 2
发布日期 2008 2000
print 函数 print (“hello”) print “hello”
整数除法 当两个整数相除时,您会得到一个浮点值 当两个整数相除时,您总是提供整数值。
Unicode 在 Python 3 中,字符串的默认存储是 Unicode。 要存储 Unicode 字符串值,您需要用“u”来定义它们。
语法 语法更简单易懂。 Python 2 的语法相对难以理解。
比较顺序规则 在此版本中,比较顺序规则已得到简化。 比较顺序规则非常复杂。
迭代 引入了新的 Range() 函数来执行迭代。 在 Python 2 中,xrange() 用于迭代。
例外 它应包含在括号内。 它应包含在符号内。
变量泄漏 变量的值永不改变。 全局变量的值在使用 for 循环时会发生变化。
向后兼容性 将 Python 2 移植到 Python 3 并不困难,但它从不可靠。 Python 版本 3 与 Python 2 向后不兼容。
许多最近的开发人员正在创建只能与 Python 3 一起使用的库。 为 Python 2 创建的许多旧库不向前兼容。

Python 2 与 Python 3 示例代码

Python 3

def main():
  print("Hello World!")
  
if __name__== "__main__":
  main()

Python 2

def main():
  print "Hello World!"
  
if __name__== "__main__":
  main()

使用哪个 Python 版本?

就当今的 Python 2 与 Python 3 的区别而言,Python 3 版本是明显的赢家。这是因为 Python 2 将在 2020 年后不再可用。大规模采用 Python 3 是未来的明确方向。

考虑到 Python 2 编程语言支持的下降以及 Python 3 升级带来的额外好处,对于新开发人员来说,选择 Python 版本 3 总是明智的。但是,如果一份工作需要 Python 2 的功能,那将是使用此版本的唯一令人信服的原因。

摘要

  • Python 2 使代码开发过程比早期版本更容易。它实现了 Python 增强提案 (PEP) 的技术细节。Python 2.7(2.x 系列的最后一个版本)不再进行开发,并将于 2020 年停止支持。
  • Python 3 是 Python 编程语言的较新版本,于 2008 年 12 月发布。此版本发布的主要目的是修复 Python 2 中存在的问题。这些更改的性质使得 Python 3 与 Python 2 不兼容。它是向后不兼容的。
  • 在 Python 2 中,比较顺序规则已得到简化。
  • 在 Python 3 中,比较顺序规则非常复杂。
  • 就当今的 Python 2 与 Python 3 的区别而言,Python 3 版本是明显的赢家。