Python 3.10中新增的6个有趣的新功能!

Python 是当今最受欢迎的编程语言之一。它应用广泛,从学习计算机科学的基础知识到执行复杂而直接的科学计算任务,到构建游戏。它甚至用于数据科学和量子计算等先进领域。Python 之所以受欢迎,原因有很多,其中最重要的一点就是Python的多才多艺,与其他编程语言相比,学习起来是多么容易。此外,Python 由 Python 软件基金会维护和开发,该基金会一直在研究改进 Python 的新方法。

9105a145e5d70b99c7337cbe5db120ca.png

本月初(2021年10月),新版Python 3.10发布。在这个新版本中,有些独特而有价值的功能被添加到 Python 中,而一些旧功能被删除。我们可以将添加或删除的功能分类分为几个类别,例如语法功能、添加到默认库或对现有功能的改进。

Python 3.10 有几个很酷的新功能, 使与 Python 合作成为更好的体验。在本文中,我将与您分享 6 个新功能和附加组件,我最兴奋和很高兴看到它们添加到 Python中去。

1. 更好的错误跟踪

作为一个每天使用 Python 编写代码和教编码的人, 我很清楚收到语法错误的挫折感。虽然语法错误很容易修复,但有时我们希望更好的错误消息,可以帮助我们更好地定位错误,并节省调试时间。

在 Python 3.10 中,处理错误要好得多,因为有两个功能,更好的错误消息和调试的精确行号。例如,让我们考虑以下代码,其中我们有一个字典和一个函数。然而,在这个代码中,我们忘了使用引号关闭字典。

some_dict = {1: "jack", 2: "john", 3: "james" ,
a_results = a_useful_function()

在 Python 的以前版本中,此错误消息看起来是这样的:

File "amazing_code.py", line 3
    a_results = a_useful_function()
              ^
SyntaxError: invalid syntax

但是,随着新错误消息和行编号的改进,新的错误消息将具有更好的信息,如错误的确切类型及其精确的行数。

File "amazing_code.py", line 1
    expected = {1: "jack", 2: "john", 3: "james" ,
                                                 ^
SyntaxError: '{' was never closed

此新功能将有助于加快调试速度,减少人们开始学习 Python 的挫折感。

2. 引入结构模式匹配

如果您使用过其他编程语言(如C++),您可能希望 Python 具有switch语句,而不必经过长时间的(如elif、elif,....,)及其他语句。Python 3.10 的新功能之一是添加他们所谓的结构模式匹配,换句话说,switch,case语句,其中有以下语法。

match subject:
    case <patt1>:
        <act1>
    case <patt2>:
        <act2>
    case <patt3>:
        <act3>
    case _:
        <action_default>

3. 新型类型运算符

虽然 Python 是一种动态键入的编程语言,但有办法使它的某些部分静态键入。例如,如果您正在编写一个函数,并且参数数据类型对于函数的执行非常重要。在以前的版本中,您可以按如下方式指定属性的类型,例如:

def func(num: int) -> int:
    return num + 5

但是,如果您想要接受两种数据类型,则需要使用Union关键字。

def func(num: Union[int, float]) -> Union[int, float]:
    return num + 5

在新版本的 Python 中,您可以使用新的运算符"|"在两种数据类型之间进行选择or的操作而不是Union,如下所示:

def func(num: int | float) -> int | float:
    return num + 5

4. 其他酷功能

4.1 更严格的zip函数

该函数是Python 中众多有趣的函数之一,它是 Python 中的内置功能,允许您在多个序列的元素上进行组合和重组。在以前的版本中,您本可以使用不同长度的序列,但是现在Python引入了一个新的严格参数(strict),以检查传递到 zip 函数的所有参数序列长度是否相同。

4.2 自动文本编码

作为一名程序员,我们经常遇到或说"它在我的机器上工作!代码在一台机器上工作,而另一台机器则不起作用“,原因有很多:文本编码可能导致这样的错误。

在 Python 的以前版本中,如果您没有明确说明编码类型,首选的本地编码可能会导致代码在其他计算机上运行时失败。在 Python 3.10 中,可以激活警告,告知用户何时/如果他们打开文本文件时没有特定的编码类型。

4.3 异步迭代

一个强大和先进的编程范式是异步编程,从Python 3.5起已成为Python的一部分。Python 3.10 中,新增了两个内置的异步函数aiter()和anext(),会使您的代码更具可读性。

最终想法

当我攻读本科学位时,我参加了几个课程,我们用C++或 Java 编写代码并实施应用程序。但是,到了完成毕业论文的时候,我决定学习和使用Python。那是近十年前的事了,我从未回头: 每当我处理一个问题时,Python 成为我编程语言的首选。后来我开始教孩子们计算机科学,我意识到Python如何激励年轻一代追求科技事业。除了在 Python 中编写或阅读代码的易用性,以及您在 Python 中开始实施代码的速度之外,我最喜欢这种编程语言的是 Python 软件基金会为保持 Python 相关性而付出的艰辛努力。

原文链接:https://towardsdatascience.com/6-new-awesome-features-in-python-3-10-a0598e87689f

原作:Sara A. Metwalli

翻译:大江狗

推荐阅读

一文看懂Python面向对象编程-知乎收藏过千

Python进阶之hasattr()、getattr()和setattr()函数的使用

推荐30个好用的Python编程技巧

Python 优化提速的 8 个小技巧!

f0814f91287bdfbb5db9a2ed8032b663.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值