资源行业动态给 Python 新手的 Python 3.8 六大新特性介绍

给 Python 新手的 Python 3.8 六大新特性介绍

2020-01-10 | |  71 |   0

原标题:给 Python 新手的 Python 3.8 六大新特性介绍

来源:AI 研习社        链接:https://www.yanxishe.com/TextTranslation/2344


语言会变化。语言会优化。2020年已不再支持Python 2。 


随着数据科学的兴起,Python成为2019年最受欢迎的编程语言。尽管如此,面对这么多要学的东西,感到不知所措也是很正常的。语法在不断变化。每次更新都会添加许多新的表达式形式。在Python中很难记录到这些改动。有些特性我要是早点知道就好了。 


我希望早点知道Python的5个特性 

包括了lambda、映射和过滤的Python技巧

towardsdatascience.com


如果你也有同样的感觉,那对你来说有个坏消息。最近发布了Python 3.8。但不要害怕。我总结了Python 3.8中每个Python初学者都应该学习的6个新特性。  


1. 赋值表达式  --  可读性 

也被称为海象操作员 ,它是一个带有语法的新操作符 :=这允许您将值赋给变量作为更大表达式的一部分。 这可以说是Python 3.8中讨论最多的新特性。这里有一个例子。   


赋值表达式  b := a**2 赋给变量b一个值,该值是a的平方, 这里是36,然后检查b的值是否大于0。

 00.png

赋值表达式有时可以使代码更紧凑和可读。  不过请注意不要滥用它,因为在某些情况下,它可能使您的代码更加难以理解。 


# DON'T DO THIS!

a = 5

d = [b := a+1, a := b-1, a := a*2]

1578651552896174.jpg

 

这个操作符在其他(较老的)编程语言中已经存在,我估计大多从其他编程语言转到Python的程序员都能够使用这个新特性。在它无处不在之前熟悉它。上图就是海象。  


2. 参数类型——鲁棒性 

Python函数中的性能参数可以接受两种类型的参数。


按位置传递的位置参数

由关键字提供的关键字参数 

在下面的示例中,性能参数a和b的值可以通过位置或关键字参数提供。很灵活。  


def my_func(a, b=1):

    return a+bmy_func(5,2)     # both positional arguments

my_func(a=5,b=2) # both keyword arguments


Python的新版本提供了一种方法来指定性能参数,这些性能参数只能接受使用语法/和*进行分隔的位置或关键字参数。  


*后一种语法*不是首次出现在Python 3.8中的  


在下面的示例中,前两个性能参数a和b仅仅是位置参数,中间两个c和d可以是位置参数或关键字参数,最后两个e和f仅仅是关键字参数。  

02.png

1578651635778383.jpg

Austin Distel 在 Unsplash上发布的照片 


你为什么要牺牲灵活性呢?当性能参数名称没有用或很随意时,应该排除关键字参数。如果将来更改函数中的性能参数名称,这还可以避免破坏代码。它有助于更鲁棒的代码。 


3. f-string 2.0 — 调试

Python中的f-string改变了游戏规则。它是一种可读的、优雅的字符串格式语法,将表达式嵌入到字符串中。这是通过语法f'{expr}'来实现的,其中一个表达式由一个f-string中的花括号括起,在引号前加上f。 


新的更新允许在f -string 内部的表达式中使用等号=作为格式说明符,语法为f'{expr=}'。输出字符串将包括变量名及其值,在=之间加一个等号,如下所示。  

04.png

我们通常希望打印出变量的值,以用于文档编制或调试。这使得调试变得非常简单,只需要很少的工作。 


4. 可逆字典--顺序 

字典现在可以使用reversed()以相反的插入顺序来进行迭代。  


5. 新模块--元数据  

有一个新的importlib.metadata模块,允许您从第三方包中读取元数据。您可以在脚本中提取包的版本号。 


6. 继续--finally 

曾经由于实现上的问题,在一个finally子句中使用continue语句是非法的。现在解决了。  

05.png

1578651720635348.jpg

Hannah Jacobson在 Unsplash 上发布的照片  


启发

注意,我没有提到那些高级特性,它们对为小型项目编写代码的普通程序员几乎没有关系。其中包括多进程共享内存 、新的Pickle协议等。给那些感兴趣的人。

这里有6个新的Python特性,即使是Python初学者也可以从中受益。在跳入Python 3.8之前,请确保你熟悉一些基本的Python特性。如果你对Python感兴趣,下面的文章可能会有用:   


我希望早点知道Python的5个特性 


包括了lambda、映射和过滤的Python技巧

towardsdatascience.com

每个Python初学者都应该学习4个NumPy技巧


编写可读代码的技巧

towardsdatascience.com  

THE END

免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。

合作及投稿邮箱:E-mail:editor@tusaishared.com

上一篇:光明时评:我们需要怎样的人工智能新教材?

下一篇:AI 的世界“太小了”——对 AI 研究方向过度集中问题的反思

用户评价
全部评价

热门资源

  • 国内人才报告:机...

    近日,BOSS 直聘职业科学实验室 &BOSS 直聘研究院...

  • AI使物联网更智能...

    看到微软对物联网和人工智能的结合感兴趣是一个明...

  • 推荐一批学习自然...

    这里推荐一批学习自然语言处理相关的书籍,当然,...

  • 安防智能化大势下...

    大部分传统安防设备不仅拍摄视野有限,而且无法事...

  • 20亿创业基金、10...

    近日,杭州举办了建设国家新一代人工智能创新发展...