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

liftword2周前 (12-16)技术文章18

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 日期格式和时间以及当前时间和时间戳

#Python#Python 程序在运行的时候可能需要获得当前的时间。在这个时候我们需要导入 datetime 包。获得当前时间例如,可以使用下面的代码获得当前的日期。today = datetim...

python 日期、时间处理,各种日期时间格式/字符串?

阅读原文模块函数说明''' date 日期对象,常用的属性有year,month,day time 时间对象,常用的属性有hour,minute,second,毫秒...

python时间操作,最全封装,各种年月日加减、转换、获取

哈喽,我给大家封装了时间操作的工具,包含 年、月、日、时、分、秒增加指定时间,数字转换成时间,获取指定时间的年、月、日、时、分、秒,以及计算年月日的差值等,全网最全附源码,复制后即可引用。先看几个演...

Python 编程的“时间魔术”:掌握日期与时间的20+妙招

在Python中,管理时间和日期可能是我们经常面对的一项任务,而datetime模块正是帮我们处理这些问题的利器。datetime模块不仅让我们轻松搞定时间和日期的转换、操作,还能帮助我们应对日常工作...

Python中的日期和时间处理 python处理日期数据

在Python编程语言中,日期和时间的处理是一项常见且重要的任务。Python提供了一个强大的内置模块datetime,它允许我们以多种方式操作日期和时间。本文将通过一系列示例,深入探讨如何在Pyth...

python内置时间函数time详解 python time 函数

内置函数时间time()1、年:tm_year, 月:tm_mon, 日:tm_mday,时:tm_hour, 分:tm_min, 秒:tm_sec, 星期:tm_wday(从0开始)2、Time.t...