当前位置: 首页 > 科技观察

错误调试到线,match-case模式匹配...Python3.10真的很友好

时间:2023-03-21 23:11:06 科技观察

Python是当今最流行的编程语言之一,已经被广泛应用于各种领域和应用,从学习计算机科学基础从知识到执行复杂而直接的科学计算任务再到构建游戏,它的影子无处不在。Python甚至用于更高级的领域,如数据科学和量子计算。2020年11月,发布了Python3.10第二个alpha版本,在类型注释扩展、zip、位计数和字典映射等方面有了新的改进。今年4月,Python3.10测试版发布。最大的亮点是switch-case语句的引入。之后,Python陆续发布了几个beta和rc(ReleaseCandidate)版本。10月4日,Python正式发布了Python3.10正式版。在新版本中,Python添加了一些独特且有价值的特性,同时删除了一些旧特性。有人总结了3.10版本的三个重要特性,即:更好的错误跟踪;match-case结构模式匹配;新联盟运营商。法国学者ThibaultClerice说,“随着Python3.10的发布,每个程序员都会爱上新的“结构模式匹配”功能。”对于Python3.10的新特性,威斯康星大学麦迪逊分校统计学助理教授、畅销书《Python Machine Learning》的作者SebastianRaschka表示,“新特性最令人兴奋的是改进了错误信息提示.现在很容易发现诸如缺少逗号或拼写错误之类的小错误。”另外,有网友表示Python3.10已经为Linux和macOS系统提供了psycopg2二进制包,但是Windows系统并没有很好的适配。庆应义塾大学量子计算博士生SaraA.Metwalli撰文对Python3.10的新特性进行了全面梳理,归纳出以下六大新特性和附件组件。Python3.10最新特性特性一:更好的错误追踪作为一个天天用Python写代码的码农,肯定踩过语法错误的坑。虽然成熟的程序员可以熟练掌握Python技能,语法错误也可以得到很好的修复,但有时我们还是想要更准确的错误信息,以帮助更好地定位错误,节省调试时间。Python3.10添加了两个新功能,用于更好的错误处理、更好的错误消息和用于调试的精确行号。以下面的代码为例,代码中包含了一个字典和一个函数,但是这段代码表明字典没有关闭。some_dict={1:"jack",2:"john",3:"james",a_results=a_useful_function()在以前的Python版本中,这个错误消息看起来是这样的:然而,随着Python3.10的到来,新的错误消息和行编号的改进为编码人员提供了更好的错误消息,例如可以跟踪错误的确切类型及其确切的行号。Python3.10的错误跟踪新功能将有助于加快调试速度并减少初学者的挫败感。特性二:引入结构模式匹配如果你用过C++等其他编程语言,也许你已经开始期待Python有switch语句这样你就不用经历很长的if,elif,elif....else语句来完成任务。Python3.10的一个新特性是增加了结构模式匹配,也就是增加了matchcase语句,语法如下:matchsubject:case:case:case:case_:特性3:新的Union运算符尽管Python是一种动态类型的编程语言,但有一些方法可以使它的某些部分成为静态类型。例如,如果你正在写一个函数,属性(attributes)的类型对于函数内部的转换很重要。在之前的版本中,可以指定属性的类型,例如:deffunc(num:int)->int:returnnum+5但是问题来了,如果要接受两种类型,需要使用Union关键字:deffunc(num:Union[int,float])->Union[int,float]:returnnum+5在Python3.10中,您可以在两种类型之间进行选择,使用|运算符而不是Union以获得更直接的类型决策:deffunc(num:int|float)->int|float:returnnum+5特性4:更严格的压缩Python中一个有趣的函数是zip()函数,它是一个内置的-在Python中的函数中,允许从多个序列元素组合和迭代。在以前的版本中,您可以将zip与不同长度的序列一起使用,但现在引入了一个新参数strict来检查传递给zip函数的所有可迭代对象是否具有相同的长度。特点五:自动文本编码有时编码会遇到这种情况,代码在一台机器上可以运行,但在另一台机器上就会失败。造成这种情况的原因有很多,其中一些是文本编码导致的。在Python的早期版本中,如果未显式声明编码类型,则首选本地编码可能会导致代码在其他计算机上的行为不正确。在新版本的Python3.10中,如果用户打开一个没有特定编码类型的文本文件,可以激活一个警告来通知用户。特性6:异步迭代异步编程是一种强大的高级编程范式,从Python3.5版本开始就已经成为Python的一部分。在Python3.10中,有两个新的异步内置函数aiter()和anext()来提高代码的可读性。对于许多程序员来说,Python可能是他们首选的编程语言。Python也多次登顶许多编程语言排行榜。比如在IEEE2021编程语言排行榜中,Python是最好的,在总榜单和其他几个分榜单中依然稳居第一。Python3.10的发布,必将为编程语言Python带来更好的编程体验。【本文为栏目组织《机器之心》、微信公众号“机器之心(id:almosthuman2014)”原创翻译】点此查看作者更多好文