网站建设需要要多少钱,c2c网站开发,让别人做网站应注意什么,小型网站的建设方案Python 3.9 beta预计下个月就要发布了#xff0c;那么3.9有那些让我们期待的新功能和变更呢#xff1f;本我我们一起来说Python 3.9的新功能的。安装测试版为了能够实际探索Python 3.9 的功能#xff0c;我们需要先下载一个Python 3.9 alpha/beta并安装。wget https://www.p…Python 3.9 beta预计下个月就要发布了那么3.9有那些让我们期待的新功能和变更呢本我我们一起来说Python 3.9的新功能的。安装测试版为了能够实际探索Python 3.9 的功能我们需要先下载一个Python 3.9 alpha/beta并安装。wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0a5.tgztar xzvf Python-3.9.0a5.tgzcd Python-3.9.0a5./configure --prefix/home/chongchong/python-3.9makemake install这样python测试版本就会安装完成我们通过/home/chongchong//python-3.9/bin/python3.9运行此命令后会显示当前版本和提示消息新区操作符最值得期待的新功能是新字典合并运算符|和|。当前我们要对字典合并要的做法假设有两个字典d1 {x: 1, y: 4, z: 10}d2 {a: 7, b: 9, x: 5}我们希望结果为{x: 5, y: 4, z: 10, a: 7, b: 9}# ^^^^^ Notice that x got overridden by value from second dictionary方法1d dict(d1, **d2)方法2d d1.copy()d.update(d2)方法3d {**d1, **d2}方法1使用dict(iterable, **kwargs)初始化字典的函数第一个参数是普通字典第二个参数是键/值对列表在这种情况下是使用**操作符解压缩的另一个字典。方法2使用update功能用第二个字典中的键值对更新第一个字典。由于该操作会修改原始字典因此我们需要将第一个字典复制到最终变量中以避免修改原始字典。方法3是最简练的解决方案使用了字典解压缩并将两个变量(d1和d2)解压缩为结果变量d。三种方法都可以用在python 3.9中我们还可以使用新的|操作法来解决。新操作符方法方法4d d1 | d2d {x: 5, y: 4, z: 10, a: 7, b: 9}方法5d1 | d2d1 {x: 5, y: 4, z: 10, a: 7, b: 9}上面的方法4与方法1的拆包(d {**d1, **d2})非常相似。方法5可用于就地合并其中原始变量(d1)被第二操作数(d2)的值更新。拓扑顺序functools模块的TopologicalSorter可能是值得关注的另一项新功能。该类允许我们使用拓扑顺序对图进行排序。拓扑顺序是这样的顺序其中对于2个节点u和v通过向边连接uv(从u至v)u在v前在引入此功能之前我们必须使用Khan的算法或深度优先搜索(不是完全简单的算法)手动来实现。在pyton 4.9中如果需要对依赖作业进行排序以进行调度则只需执行下面的操作from functools import TopologicalSortergraph {A: {D}, B: {D}, C: {E, H}, D: {F, G, H}, E: {G}}ts TopologicalSorter(graph)list(ts.static_order())结果[H, F, G, D, E, A, B, C]在上面的示例中我们首先使用字典创建图其中键是传出节点值是它们的邻居集。之后我们使用图形创建sorter的实例然后调用static_order函数以产生排序。请记住此顺序可能取决于插入顺序因为当2个节点处于同一图形级别时它们将按插入顺序返回。除了静态的排序此类还支持节点的并行处理比如与任务队列工作。IPv6范围的地址Python 3.9中引入的另一个变化是可以指定IPv6地址的范围。对不不熟悉IPv6的人来说通过IPv6范围它可以用来验证IP的有效性。范围可以在IP地址的末尾使用%符号指定例如3FFE:0:0:1:200:F8FF:FE75:50DF%2。该IP地址为范围内2即链接本地地址。因此如果需要在Python中处理IPv6地址现在可以这样处理from ipaddress import IPv6Addressaddr IPv6Address(ff02::fa51%1)print(addr.scope_id)结果为1 – 表示网卡本地地址。但是使用IPv6范围时应注意一件事。使用基本的Python运算符进行比较时范围不同的两个地址不相等。新math功能Python 3.9在math模块中添加或改进了许多其他功能。import mathmath.gcd(80, 64, 152)8以前计算最大公因数的函数(gcd)只能应用于2个数字所以我们不得不要变相使用math.gcd(80, math.gcd(64, 152))的方法来处理。从Python 3.9开始gcd可以将其应用于任意数量的值。math模块的新增加的功能是math.lcmmath.lcm(4, 8, 5)40math.lcm用来计算其参数的最小公倍数。与gcd相同它允许可变数量的参数。还有两个新增加的功能是math.nextafter和math.ulpmath.nextafter(4, 5)4.000000000000001math.nextafter(9, 0)8.999999999999998math.ulp(1000000000000000)0.125math.ulp(3.14159265)4.440892098500626e-16math.nextafter(x, y)功能是非常简单它表示往后面浮动x到y同时增加浮点数精度的近似(补0或者9)。而math.ulp用作数值计算精确的测量。最简短的解释是使用示例假设我们没有64位计算机。相反我们只有3位数字。用这3位数字可以表示3.14而不是3.141。使用3.14我们可以代表的最接近的较大数字是3.15这2个数字相差1个ULP(最后一个单位)即0.1。因此math.ulp返回值如上面示例。新的字符串函数Python 3.9中字符串也添加了两个新的便捷功能removeprefix去掉前缀someText.removeprefix(some)结果为Textremovesuffix去掉后缀someText.removesuffix(Text)some对这两个函数的功能可以使用string[len(prefix):]前缀和string[:-len(suffix)]后缀来实现的功能。但是这样的操作在日常很常见所以增加这两个函数可以带来很多便捷。HTTP代码还有一个需要提及的新功能是HTTP模块中已经增加了状态码http.HTTPStatus。即是import httphttp.HTTPStatus.EARLY_HINTS# http.HTTPStatus.TOO_EARLY# http.HTTPStatus.IM_A_TEAPOT# http.HTTPStatus这些状态码会对我们处理http协议中的很多问题带来便捷。结论Python 3.9目前还处于Alpha阶段下个月发布beta版本到正式版发布已经为时不多了希望该文章介绍能对我们版本升级更换有所帮助。