• Python语言版本更新历史
  • 发布于 2个月前
  • 246 热度
    0 评论
版本迭代更新的频率是软件应用或开源项目生命力的重要特征体现, 那作为蝉联编程语言排行榜冠军的 Python ,它的版本更新那是相当活跃的,但这也给 Python 的初学者带来了一个困扰:Python 版本到底该如何选择?那么今天就先给大家汇总一下 Python 的版本更新的主要内容后,再给大家分析一下,该如何选择合适的 Python 版本。

大版本区分
首先,Python 的大版本分为 2.× 、 3.× 两个系列,通常称之为 Python2 和 Python3。从 Python2 到 Python3 是一个大版本升级,存在很多不向下兼容的差异,所有很多 Python2 的代码不能被 Python3 解释器运行,反之亦然。

从2020年开始,Python 官方宣布停止对 Python2 的维护,不再更新,所以除了历史项目中用的Python2开发且无法迁移到Python3的情况,无论是学习 Python 语言,还是新项目的开发,都应该选择 Python3。在选好了 Python3 这个大版本,又开始面临如何选择小版本的问题。

Python3 计划每年发布一个新的子版本,每次只增加两三种新语法。所以我们了解清楚各版本发生的语法变化是非常有必要的。

下面就来盘点一下 Python3 各版本的发布时间和语法变化:

Python3.0
Python3.0 :于 2008 年发布,重新设立很多的语法规范。
Python3.1 ~ Python3.3 在不断进行细节完善,这里略过不表。

Python3.4
发布于 2014 年,主要更新内容:
采用 pip 作为 Python 第三方包的默认安装方式。
增加标准库 pathlib ,用于按面向对象的方式操作文件路径。
增加标准库 enum ,用于定义枚举类。
增加标准库 asyncio ,用于实现异步 IO 。
增加标准库 statistics ,提供了求平均值、中位数、方差等运算的函数。
增加标准库 tracemalloc ,用于跟踪内存分配的情况,方便调试。

Python3.5
发布于 2015 年,主要更新内容:
扩展了迭代拆包运算符 * 、字典拆包运算符 ** 的语法。
增加语法:使用 Python2 风格的百分号 % 来格式化字符串。
增加关键字 async、await,用于定义协程。
增加语法:类型注释(type annotations)。
增加标准库 typing ,定义了一些类型,常用于类型注释。
增加标准库 zipapp ,用于将 Python 脚本打包成可执行的归档文件,扩展名为 .pyz 。

Python3.6
发布于 2016 年,主要更新内容:
dict 中的元素以前是按 key 顺序存储,现在会按插入顺序存储。
增加语法:支持在数字中插入下划线作为分隔符,提高可读性。
增加语法:f-string 给字符串加上前缀 f 之后,就会执行花括号 {} 内的语句,实现字符串格式化。
增加标准库 secrets ,用于生成安全的随机数,解决原有的 random 模块生成的随机数可能被预测的安全隐患。

Python3.7
发布于 2018 年,主要更新内容:
增加 time 模块对纳秒级分辨率功能的支持。
模块和泛型类型的核心支持 typing 。

Python3.8
发布于 2019 年,主要更新内容:
增加语法:赋值表达式(海象运算符 :=),可以在表达式中创建变量并赋值。
增加语法:定义函数时,在正斜杆 / 之前的参数都会被视作位置参数。
增加语法:在 f-string 中用 {var} 或 {var=} 的格式插入变量的值,比 str.format() 更方便。
支持在 finally 语句块中使用 continue 关键字。
multiprocessing 模块增加一个 SharedMemory 类,用于创建进程之间的共享内存。

Python3.9
发布于 2020 年,主要更新内容:
dict 类增加合并运算符 |、更新运算符 |= 。
str 类增加两个方法 removeprefix()、removesuffix() 。
支持将大部分内置类型的类名用作函数实参,便于声明注释。

Python3.10
发布于 2021 年,主要更新内容:
增加语法:match-case 模式匹配,可以不用大量的 if-elif-elif-else 嵌套了,并且支持模糊匹配等。
增加语法:用 | 运算符连接多个类型,表示 Union 类型。
调用 open() 函数时,允许传入参数 encoding='locale' ,等价于 encoding=None ,表示采用当前平台的默认编码格式。

Python3.11
发布于 2022 年,主要更新内容:
CPython 解释器优化了加载模块、调用函数等操作,使得 Python3.11 比 Python3.10 的启动速度、运行速度快了 10%~60% 。
增加了标准异常类型 BaseExceptionGroup、ExceptionGroup,用于将多个异常打包为一组。
打印 tracebacks 异常信息时,更准确地指出引发异常的代码位置。

总结
选择 Python3,放弃Python2。学习 Python 语言选择新版本,以体验更多的语法特性。开发项目需要考量第三方库对 Python版本的支持,减少踩坑。
用户评论