如是说
正像著名诗人库珀W惠普所言,
发生改变你审视表达形式的形式你所审视的表达形式也会发生改变
当Python的新版面世时,许多人害怕向后兼容难题和其它难题。但假如你讨厌Python,你一定会对新预览中正式发布的优点深感激动。
Python的新一代版将于2020年10月5日(星期二)正式发布。责任编辑为你提供更多了两个python3.9优点的条目,你那时能试著那些优点。
预览Python
让他们具体来说预览到python的新版。假如不确认现阶段采用的版,请采用上面的标识符检查和现阶段版。
在cmd中,点选
那时他们有了新一代的版,是这时候检查和一下有甚么新优点了。
1.词典预览
词典是Python中最管用和最常见的计算机程序众所周知。新版强化了分拆和预览词典的形式。
1.1分拆词典
假定他们有几本词典dict1和dict2,
dict1包含汽车的名称和型号,而dict2包含发动机和重量。
那时他们想分拆这两个词典,因为它们包含关于同一辆车的信息。在python3.8及更早版中,要分拆两个词典,他们能采用
内置update方法:
或是表达式**:
这有时会带来不便和麻烦。
在Python3.9.0中,他们采用 union运算符对语法进行了改进,以分拆两个dict,
这种形式非常干净、简洁、坦率。它还提高了标识符的可读性。
假如两个词典有两个公共键,那么第二个字典中的值将被保留。
1.2预览词典
为了在Python3.8或更早版中采用新的键值对预览现有词典,他们能
采用update方法,
或者用iterable预览,
在3.9中,他们那时有了update操作符=它以更简单的形式完成相同的工作。
在这里,=的工作原理类似于扩充赋值运算符。
dict1=dict2表示dict1=dict1 dict2
2类型提示
在正常情况下,他们不在Python中指定数据类型。但在某些情况下,他们可能需要两个变量来表现某种类型。在这种情况下,Python的灵活性可能会令人讨厌。从Python3.5开始,他们能指定类型,但这次预览使事情变得更加简单。
在这种情况下,传递给函数的值的类型非常重要。虽然标识符中没有错误,但传递两个字符串会将同两个字符串重复两次。
在新一代版中,通过类型提示(type hinting)他们能将期望的类型指定为int,
3字符串方法
str对象增加了两个新优点。在探索性的数据分析过程中,这个优点有时会很管用。
从函数中删除前缀
从字符串中删除后缀
4数学函数
4.1 GCD
对现有的数学函数进行了修改。在早期版中,计算GCD的函数只接受两个数字。但那时,它能应用于任何数量的值。
4.2 LCM
数学模块中添加了两个新函数来计算LCM。与GCD函数一样,LCM函数也接受任意数量的值。
4.3 Nextafter
这个math.nextafter()函数接受x和y两个参数。python3.9的这个优点是两个函数,考虑到浮点数精度,它是x向y的下两个浮点数。
4.4 ulp
假定他们没有64位计算机。相反,他们只有3位数字。用这三个数字他们能表示像3.14这样的数字,但不能表示3.141。对于3.14,他们能表示的最接近的较大数字是3.15,这两个数字相差1 ULP(最后一位的单位),即0.1。返回值与这个示例相当,但与您的计算机的实际精度相同。
要详细了解ULP,请查看:https://matthew-brett.github.io/teaching/floatingerror.html
5一致的包导入错误
这与其说是两个优点,不如说是两个修复。当以前的Python导入版出现不一致时,它的早期导入版出现了不一致的错误。
builtins.import()引发 ValueError importlib.import()引发 ImportErrorimport()那时引发ImportError而不是ValueError,这更有意义。
6随机字节生成
random模块中引入了两个名为randbytes的新方法来生成随机字节。Python已经能通过3个不同的函数生成随机字节
os.getrandom()os.urandom()secrets.tokenbytes()但它们不能产生伪随机模式。
这个random.random.randbytes函数能以受控的方式生成随机字节,并且能通过设置种子复制结果。不过,它只能在安全性不重要的情况下采用。
7支持IANA时区
在时区库zoneinfo中引入了两个新的支持IANA时区的模块。
考虑两个将印度标准时间转换为德里现阶段时间的示例。在3.9之前,他们会通过pip安装pytz,
对于zoneinfo模块,这是非常直接的。你能直接导入ZoneInfo类。
结论
除此之外,他们那时还有新的高性能的基于PEG的解析器、Graphlib模块、异步和多处理改进、HTTP状态标识符和一堆冗余优点被删除。点此了解更多:https://docs.python.org/3.9/whatsnew/3.9.html