linux建设网站,常德网站建设,网站建设模板下载免费,列出网站目录作者|PADHMA编译|VK来源|Analytics Vidhya介绍正如著名作家韦恩•W•戴尔所说#xff0c;改变你看待事物的方式 你所看待的事物也会改变当Python的新版本问世时#xff0c;许多人担心向后兼容性问题和其他问题。但是如果你喜欢Python#xff0c;你一定会对新更新中发布的特性…作者|PADHMA编译|VK来源|Analytics Vidhya介绍正如著名作家韦恩•W•戴尔所说改变你看待事物的方式 你所看待的事物也会改变当Python的新版本问世时许多人担心向后兼容性问题和其他问题。但是如果你喜欢Python你一定会对新更新中发布的特性感到兴奋。Python的最新版本将于2020年10月5日(星期一)发布。本文为你提供了一个python3.9特性的列表你现在可以尝试这些特性。更新Python让我们首先更新到python的新版本。如果不确定当前使用的版本请使用下面的代码检查当前版本。在cmd中键入要更新你的版本请转到Python下载页面获取安装包并开始安装。注意请确保更新环境变量中的路径。现在我们有了最新的版本是时候检查一下有什么新特性了。1.词典更新字典是Python中最有用和最常用的数据结构之一。新版本优化了合并和更新词典的方式。1.1合并词典假设我们有两本字典dict1和dict2dict1包含汽车的名称和型号而dict2包含发动机和重量。现在我们想合并这两个字典因为它们包含关于同一辆车的信息。在python3.8及更早版本中要合并两个字典我们可以使用内置update方法或是表达式**这有时会带来不便和麻烦。在Python3.9.0中我们使用| union运算符对语法进行了改进以合并两个dict这种方式非常干净、简洁、坦率。它还提高了代码的可读性。如果两个字典有一个公共键那么第二个字典中的值将被保留。1.2更新字典为了在Python3.8或更早版本中使用新的键值对更新现有字典我们可以使用update方法或者用iterable更新在3.9中我们现在有了update操作符|它以更简单的方式完成相同的工作。在这里|的工作原理类似于扩充赋值运算符。dict1 |dict2表示dict1dict1 | dict22类型提示在正常情况下我们不在Python中指定数据类型。但是在某些情况下我们可能需要一个变量来表现某种类型。在这种情况下Python的灵活性可能会令人讨厌。从Python3.5开始我们可以指定类型但这次更新使事情变得更加简单。在这种情况下传递给函数的值的类型非常重要。虽然代码中没有错误但是传递一个字符串会将同一个字符串重复两次。在最新版本中通过类型提示(type hinting)我们可以将期望的类型指定为int3字符串方法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。返回值与这个示例相当但与您的计算机的实际精度相同。5一致的包导入错误这与其说是一个特性不如说是一个修复。当以前的Python导入版本出现不一致时它的早期导入版本出现了 不一致的错误。builtins.__import__() 引发 ValueErrorimportlib.__import__() 引发 ImportError__import__()现在引发ImportError而不是ValueError这更有意义。6随机字节生成random模块中引入了一个名为randbytes的新方法来生成随机字节。Python已经可以通过3个不同的函数生成随机字节os.getrandom()os.urandom()secrets.token_bytes()但它们不能产生伪随机模式。这个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