• Python3.9的7个特性


    作者|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.io/teaching/floating_error.html

    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/whatsnew/3.9.html

    原文链接:https://www.analyticsvidhya.com/blog/2020/10/7-exciting-python-3-9-feature-to-know/

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

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

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

  • 相关阅读:
    iOS开发的一些奇巧淫技2
    iOS开发的一些奇巧淫技
    指定控制器跳转
    去掉UITableView HeaderView或FooterView随tableView 移动的黏性
    TextView随键盘弹出上移高度
    The Swift Programming Language-官方教程精译Swift(9) 枚举-- --Enumerations
    登录记住账号和密码小Demo
    The Swift Programming Language-官方教程精译Swift(8)闭包 -- Closures
    The Swift Programming Language-官方教程精译Swift(7)函数 -- Functions
    The Swift Programming Language-官方教程精译Swift(6)控制流--Control Flow
  • 原文地址:https://www.cnblogs.com/panchuangai/p/13939560.html
Copyright © 2020-2023  润新知