关于人工智能:Python39的7个特性

18次阅读

共计 2239 个字符,预计需要花费 6 分钟才能阅读完成。

作者 |PADHMA
编译 |VK
起源 |Analytics Vidhya

介绍

正如著名作家韦恩•W•戴尔所说,

扭转你对待事物的形式 你所对待的事物也会扭转

当 Python 的新版本问世时,许多人放心向后兼容性问题和其余问题。然而如果你喜爱 Python,你肯定会对新更新中公布的个性感到兴奋。

Python 的最新版本将于 2020 年 10 月 5 日(星期一)公布。本文为你提供了一个 python3.9 个性的列表,你当初能够尝试这些个性。

更新 Python

让咱们首先更新到 python 的新版本。如果不确定以后应用的版本,请应用上面的代码查看以后版本。

在 cmd 中,键入

要更新你的版本,请转到 Python 下载页面,获取安装包并开始装置。留神:请确保更新环境变量中的门路。

当初咱们有了最新的版本,是时候检查一下有什么新个性了。

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….

5 统一的包导入谬误

这与其说是一个个性,不如说是一个修复。当以前的 Python 导入版本呈现不统一时,它的晚期导入版本呈现了 不统一的谬误。

builtins.__import__() 引发 ValueError 

importlib.__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/w…

原文链接:https://www.analyticsvidhya.c…

欢送关注磐创 AI 博客站:
http://panchuang.net/

sklearn 机器学习中文官网文档:
http://sklearn123.com/

欢送关注磐创博客资源汇总站:
http://docs.panchuang.net/

正文完
 0