Python3.6-3.10发布时间及主要新增功能

liftword4个月前 (12-16)技术文章62

Python 3.6

Python 3.6 发布于2016年12月23日。

格式化的字符串文字fstring

格式化字符串字面值带有 'f' 前缀并且类似于 str.format() 所接受的格式字符串。 其中包含由花括号包围的替换字段。 替换字段属于表达式,它们会在运行时被求值,然后使用 format() 协议进行格式化:

>>> name = "Fred"
>>> f"He said his name is {name}."
'He said his name is Fred.'
>>> width = 10
>>> precision = 4
>>> value = decimal.Decimal("12.34567")
>>> f"result: {value:{width}.{precision}}"  # nested fields
'result:      12.35'

数字文字中的下划线

增加了在数字字面值中使用下划线的能力以改善可读性。 例如:

>>> 1_000_000_000_000_000
1000000000000000
>>> 0x_FF_FF_FF_FF
4294967295

Python 3.7

Python 3.7 于 2018 年 6 月 27 日发布。

Python 3.8

Python 3.8已于2019年10月14日发布。

赋值表达式

新增的语法 := 可在表达式内部为变量赋值。 它被昵称为“海象运算符”因为它很像是海象的眼睛和长牙。

if (n := len(a)) > 10:
    print(f"List is too long ({n} elements, expected <= 10)")

仅限位置形参

在下面的例子中,形参 ab 为仅限位置形参,cd 可以是位置形参或关键字形参,而 ef 要求为关键字形参:

def f(a, b, /, c, d, *, e, f):
    print(a, b, c, d, e, f)

f-字符串支持 = 用于自动记录表达式和调试文档

增加 = 说明符用于 f-string。 形式为 f'{expr=}' 的 f-字符串将扩展表示为表达式文本,加一个等于号,再加表达式的求值结果。

Python 3.9

Python 3.9 发布于 2020 年 10 月 5 日。

字典合并与更新运算符 | |=

>>> x = {"key1": "value1 from x", "key2": "value2 from x"}
>>> y = {"key2": "value2 from y", "key3": "value3 from y"}
>>> x | y
{'key1': 'value1 from x', 'key2': 'value2 from y', 'key3': 'value3 from y'}
>>> y | x
{'key2': 'value2 from x', 'key3': 'value3 from y', 'key1': 'value1 from x'}

新增用于移除前缀和后缀的字符串方法

str.removeprefix(prefix)
str.removesuffix(suffix)
用于方便地从字符串移除不需要的前缀或后缀。

新增模块

zoneinfo

zoneinfo 模块为标准库引入了 IANA 时区数据库。 它添加了 zoneinfo.ZoneInfo,这是一个基于系统时区数据的实体 datetime.tzinfo 实现。

graphlib

添加了新的 graphlib 模块,其中包含 graphlib.TopologicalSorter 类来提供图的拓扑排序功能。 (由 Pablo Galindo, Tim Peters 和 Larry Hastings 在 bpo-17005 中贡献。)

Python 3.10

Python 3.10 发布于 2021 年 10 月 14 日

结构化模式匹配match

增加了采用模式加上相应动作的 match 语句case 语句 的形式的结构化模式匹配。 模式由序列、映射、基本数据类型以及类实例构成。 模式匹配使得程序能够从复杂的数据类型中提取信息、根据数据结构实现分支,并基于不同的数据形式应用特定的动作。

def http_error(status):
    match status:
        case 400:
            return "Bad request"
        case 401 | 402 |403:
            return "Not allowed"
        case 404:
            return "Not found"
        case _:
            return "Something's wrong with the internet"

相关文章

python字符串\数值型变量转换日期格式

在程序设计中经常会遇到字符串向日期格式转换的问题,有一种直接有效的办法。最终得到的date变量即是date格式,不显示时间(00:00:00)。import datetime ####### 导入da...

了解何时使用函数以及何时在 Python 中选择类

Python 以其简单性和灵活性而闻名,它提供了多种构建代码的方法,其中函数和类是开发人员工具包中最常见的两种工具。函数和类在 Python 编程中都有其位置,但知道何时使用一个而不是另一个是编写高...

python内置模块datetime.date类详细介绍

Python的datetime模块是一个强大的日期和时间处理库,它提供了多个类来处理日期和时间。主要包括几个功能类datetime.date、datetime.time、datetime.datet...