Python2和Python3版本及其差异、初学pytho选择版本 - 码出个世界
Python2和Python3版本及其差异、初学pytho选择版本
Python2:
是Python里面一个非常重要的版本,最早的版本是从2001的时候开始的,特别是从2006年开始py2.5的发布,python的功能逐渐强大起来,慢慢开始稳定下来,并且差不多1-2年左右递增一个版本,在08年左右开始慢慢的火起来了。
Python2的最后一个子版本是Python2.7。此后没有再发布新版本,只是发布一些维护补丁,做一些新硬件和操作系统兼容的相关维护工作,以及修改一些bug。到2020年,Python官方将停止对Python2的维护,不会再有新的功能加入,所有老代码都会超过保质期。
那么Python3为什么会出现呢?其实是为了解决Python2里面一些历史问题和缺陷:
第一个是字符串的问题:
Python 2 中文本和二进制数据是一个烂摊子,Python中的str 既可以代表二进制数据,又可以说是文本数据,是有二义性。
文字既能代表文本数据又能代表二进制数据这很麻烦,这违背了语言的初衷,所以很容易出现bug。并且此类错误发生的时候,我们很难意识到,
《Python之禅》里讲“应该有一个“应该有一个––最好只有一个显而易见的方式去实现”。文字既能代表文本数据又能代表二进制数据这很麻烦。一旦对象 脱离你的控制,你将无从知晓。比如,如果你从网络上读到一些东西,你得小心判别这个 str 是代表二进制数据还是文本数据。或者你的代码里有一个bug,它是用来将 str 变换成文本信息––或者完全别的东西––但你搞砸了,不小心跳过了这一步。由于 str 潜在的代表两种类型,此类错误发生的时候,我们很难意识到。
举个例子:
如果你是 Python 3 的用户,你会说它是一个按照 “a”、”b”、”c”、”d”顺序包含四个字母的字符串。
如果你是 Python 2 的用户,你也会说同样的话。你同样也可能会说它是代表 97、98、99、100 的数组。事实上在 Python 2中对于 str 代表的含义有两种正确的回答,这改变了语言的初衷。所以在 Python 3 中答案是唯一的。
第二个是对Unicode的支持:
plus:
unicode:统一码,也叫万国码、单一码(Unicode)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式发布1.0版本,2020年发布13.0版本。
其他语言都已经完全支持 Unicode,由于python是在1991年2月开源发布,这意味着它早于在1991年10月发布的第一版 Unicode 标准。在接下来几年中,晚于 Unicode 标准出现的语言都选择在支持 Unicode 编码的基础上实现自己的 str 类型,这让 Python 2 处于尴尬的境地。
为了解决这些遗留问题和缺陷,2008年12月,Python 3发布。Python 3相对于Python 2的早期版本(主要是Python2.6之前)是一个较大的升级,它在设计的时候没有考虑向下兼容,所以很多早期版本的Python程序无法在Python 3上运行。当今是python2/3共存的时代,这两个版本互不兼容
Python3:
常被称为 Python 3000,或简称 Py3k。相对于 Python 2版本,这是一个较大的升级。有很多不向下兼容的差异,导致很多Python2的代码不能被Python3解释器运行
Python3计划每年发布一个新的子版本,一次只增加一两种新语法
初学者建议学哪个版本呢?
当然是Python3,即使从3.8开始学也是没有问题的,因为只要是3开头的版本,差别不会太大,新版本是加入一些新的功能。
学习Python3的理由如下:
1.使用时当然选择越新的Python版本越好,版本越老的代码越难维护,以后越来越难运行。
2.官方已经不再支持Python2,Python3是未来的方向,
3. python3在引入async还有type annotation之后,和2.x的差别越来越大
但是也是要看所处的环境的
若是企业的开发,要满足工作的需求,尤其是依赖的软件只能运行在Python2下,首选Python2.比如你的开发需要依赖大量的第三方的库(因为学Python非常大的一个原因就是因为它有成千上万的第三方包),像大量的数据分析,科学计算,还是选Python2吧
以上是 Python2和Python3版本及其差异、初学pytho选择版本 - 码出个世界 的全部内容, 来源链接: utcz.com/z/388787.html