飞道的博客

新手必看:Python 3.8六大新功能

386人阅读  评论(0)


全文共2372字,预计学习时长7分钟

来源:Pexels

IT业日新月异,落后的Python 2将在2020年逐渐被淘汰。

 

2019年,随着数据科学的兴起,Python成为了最热门的程序语言。

 

尽管如此,面对浩如烟海的知识,应接不暇也是正常的。语法不断变化,每次Python更新,都会添加许多新的表达。有很多功能小芯只恨自己知道得太晚了。

 

如果读者也感同身受,这里有一个坏消息:近期,Python 3.8已经发布。

 

不过别担心,小芯已经为你总结好了Python 3.8中每个新手都应该掌握的6大新功能。

 

来源:Pexels

1. 新模块:读取元数据历

使用新的importlib.metadata模块可以读取第三方包的元数据。可以在脚本包中获取版本号。

 

2. 字典反转:排序

 

现在,字典可以用resersed( )在反转插入排序中实现迭代了。

 

3. Continue – finally

 

由于Python的实现问题,以前在Finally子句中添加continue语句是不合法的。现在这一问题已不复存在。

 

for i inrange(2):    try:        print(i)    finally:        print('A sentence.')        continue        print('This never shows.')# Python <= 3.7>>SyntaxError: 'continue'not supported inside 'finally' clause# Python 3.8>>0   A sentence.   1   A sentence.

 

来源:Pexels

4. 指示参数类型:让代码更强大

 

Python函数只接受两种参数。

 

·  位置参数:根据函数定义的参数位置来传递参数。

·  关键字参数:使用关键字来指定参数。

 

在下例中,参数a和参数b的值可由位置参数或关键字参数确定,非常灵活。

 

def my_func(a, b=1):    return a+bmy_func(5,2)     # both positional argumentsmy_func(a=5,b=2) # both keyword arguments

 

新版本的Python用语法/和*作区分,提供了指定接受位置参数或关键字参数的方法。注意:语法*并不是在Python 3.8中才出现。

 

在下面的例子中,开头的两个参数a和b只接受位置参数,中间的c和d可接受位置参数或关键字参数,最后的e和f只接受关键字参数。

defmy_func(a, b, /, c, d, *, e, f):    return a+b+c+d+e+fmy_func(1,2,3,4,5,6)          # invalid  as e and f are keyword-onlymy_func(a=1,b=2,3,4,e=5,f=6) # invalid as a and b are position-onlymy_func(1,2,c=3,4,e=5,f=6)    # returns  21my_unc(1,2,c=3,d=4,e=5,f=6)  # returns 21

为什么要牺牲灵活性呢?如果参数名称随意且无用,就应该排除关键字参数。如果预计函数中的参数名可能会发生变化,指定参数类型能避免代码崩溃,也能让代码更加强大。

 

5. 赋值表达式:提升代码可读性

 

赋值表达式,又称海象运算符,是以:=为语法形式的新运算符,它能把较大表达式中的某部分赋值给变量。这无疑是Python 3.8中讨论最多的新功能了。来看个例子:

 

赋值表达式b := a**2 将a的平方,也就是36,赋值给b,然后检查b的值是否大于0。

 

a =6# The following statement# assigns the value a ** 2 to  variable b,# and then check if b > 0 is  trueif (b := a **2) >0:    print(f'The  square of {a} is {b}.') # The square of 6 is 36.


有时赋值表达式能让代码更加简洁可读。
但是,请注意不要滥用赋值表达式,因为在某些情况下它会让代码更加难懂。 

 

# DON'T DO THIS!a = 5d = [b := a+1, a := b-1, a := a*2]

其他(老)程序语言中也有赋值表达式,希望改用Python的程序员们能(多)用这一新功能。在赋值表达式泛滥之前赶快掌握它吧。

 

来源:Pexels

6. F字符串2.0: 调试(debug)的利器

 

Python f字符串改变了游戏规则。F字符串是格式化字符串的语法,简洁且易读。利用语法f'{expr}',在引号前加上f,将表达式用大括号括住,就能够将表达式插入字符串。

 

Python更新之后,等于号“=”能够在f字符串f'{expr=}'语法中作为格式限定符使用。输出的字符串为变量名=变量值,如下所示:

 

pi =3# I studied Engineeringprint(f'π equals {pi}.') # π equals 3.print(f'{pi=}')           # pi=3# take it or leave it


出于编制文件或调试 (Debug) 的需要,常需要指明变量值。
F字符串使得调试(debug)易如反掌。 

 

当然,在投身Python 3.8编程之前,你需要掌握Python基本功能(必不可少)。

来源:Pexels

这就是Python的6大新功能,每个Python新手都能从中获益。

 


推荐阅读专题

留言 点赞 发个朋友圈

我们一起分享AI学习与发展的干货

编译组:蔡思齐、孙梦琪

相关链接:

https://towardsdatascience.com/6-new-features-in-python-3-8-for-python-newbies-dc2e7b804acc

如需转载,请后台留言,遵守转载规范

推荐文章阅读

ACL2018论文集50篇解读

EMNLP2017论文集28篇论文解读

2018年AI三大顶会中国学术成果全链接

ACL2017 论文集:34篇解读干货全在这里

10篇AAAI2017经典论文回顾

长按识别二维码可添加关注

读芯君爱你


转载:https://blog.csdn.net/duxinshuxiaobian/article/details/104120839
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场